Einfacher Test erhält http://localhost:8000/hello?foo=bar#this-is-not-sent-to-server
python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"
Serving HTTP on 0.0.0.0 port 8000 ...
localhost - - [02/Jun/2009 12:48:47] code 404, message File not found
localhost - - [02/Jun/2009 12:48:47] "GET /hello?foo=bar HTTP/1.1" 404 -
Zugriff auf den Server die Anfrage ohne #appendage - alles nach dem Hash-Tag ist einfach ein Anker-Lookup auf dem Client.
Sie können den Namen des Ankers als ein Beispiel in der URL über Javascript verwenden, verwendet finden:
<script>alert(window.location.hash);</script>
Die parse_url() Funktion in PHP kann funktionieren, wenn Sie bereits die benötigte URL-Zeichenfolge einschließlich des Fragments haben (http://codepad.org/BDqjtXix):
<?
echo parse_url("http://foo?bar#fizzbuzz",PHP_URL_FRAGMENT);
?>
Output: fizzbuzz
Aber ich glaube nicht, PHP, um die Fragmentinformationen erhält, weil es nur Client.
Vielen Dank! Also um klar zu sein, anstatt dies: 'www.example.com/? Val = 1 # part2' Sie müssten auf dem Server, wie folgt umleiten: ' www.example.com/? redirectUrl =% 2F% 3Fval% 3D1% 23part2' und natürlich müssen Sie Unterstützung hinzufügen, um zu dieser anderen URL auf Ihrer anderen Seite umzuleiten. Nicht genial, und funktioniert natürlich nicht für alle Anwendungsfälle, aber funktioniert für Lesezeichen. Wenn Sie dies tun, sollten Sie keine Umleitungen auf absolute URLs zulassen, sondern nur relative URLs, um sicherzustellen, dass Sie sich nicht für [unsichere Weiterleitungen] öffnen (https://www.owasp.org/index.php/Unvalidated_Redirects_and_Forwards_Cheat_Sheet). –