Ciò non è possibile in quanto i clienti non inviano la "parte di ancoraggio" al server
A titolo di esempio, ecco la richiesta precisa che Chrome ha generato dopo la presentazione http://example.com/#foobar
(registrato utilizzando Wireshark):
GET/HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/532.3 (KHTML, like Gecko) Chrome/4.0.223.11 Safari/532.3
Cache-Control: max-age=0
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
If-None-Match: "b300b4-1b6-4059a80bfd280"
If-Modified-Since: Tue, 15 Nov 2005 13:24:10 GMT
Vedere, no #foobar. Quindi non c'è modo che un'applicazione server possa leggerlo.
È possibile eseguire alcune magie JavaScript per archiviare l'ancora in un cookie o in un campo di input nascosto o qualunque sia il voodoo in cui ci si trova. Ma non funzionerà mai per richieste che non provengono dai tuoi stessi siti. È più semplice fare tutto ciò che serve sulla parte server della stringa di query e utilizzare l'ancora solo per le attività di solo JavaScript o usarlo per navigare all'interno di un semplice documento HTML, ma è così 90s;).
Ecco la parte importante della RFC 1808 citato:
Si noti che l'identificatore di frammento (e il "#" che lo precede) è parte non considerato dell'URL. Tuttavia, poiché viene comunemente utilizzato nello stesso contesto di stringa di un URL, un parser deve essere in grado di riconoscere il frammento quando è presente e metterlo da parte come parte di durante il processo di analisi.
Ecco una domanda simile per PHP, con risposte similmente aggiornate: http://stackoverflow.com/questions/1032242/how-to-obtain-anchor-part-of-url-after-in-php –