ChrisB: Header Location: mitgabe eines # in der URL

Beitrag lesen

Hi,

Der Hash-Part eines HTTP-URLs ist etwas rein clientseitiges - der wird bei einem Request nicht mit uebertragen. Und ihn auf dem umgekehrten Weg dem Client aufzwingen zu wollen, duerfte vermutlich auch nicht funktionieren, wie du ja gemerkt hast.

Aber das verstehe ich nun nicht mehr.
Ist der Hash-Part nicht gleichzusetzen mit einem Anker?

Doch, genau.

Und ich habe schon oft solche Anker verlinkt...

Ja - aber der Name dieses Ankers wurde dabei nicht mit an den Server uebertragen.

Ob du nun auf
http://example.org/dokument.html
oder auf
http://example.org/dokument.html#bestimmterAnker
verlinkst - der Browser wird in beiden Faellen die gleiche Anfrage an den Server senden.
Erst wenn er die Antwort erhalten hat, unterscheidet sich dann das Verhalten: Im ersten Fall wird er (Browser) das Dokument ganz normal "von Anfang an" anzeigen - im zweiten wird er darin nach einen Element mit name/id "bestimmterAnker" suchen, um dieses dann "anzuspringen".
Der Ankername verlaesst dabei das kleine Universum des Clients aber nicht, der Server erlangt keinerlei Kenntnis davon.
Und deshalb ist auch Werners vorhaben, den Anker, fuer den der Client sich interessieren soll, mit einer _serverseitigen_ Technik (PHP/Location-Header) beeinflussen zu wollen, keine Erfolgsaussicht zu bescheinigen.
_Wenn_ der Client sich im Antwortdokument fuer einen Anker interessieren soll, dann muss diese Entscheidung auch dort fallen - entweder, indem direkt auf eine Ressource _mit_ Hash-Part im URL verlinkt wird, oder in dem das Anspringen nachtraeglich nach dem Erhalt des Dokumente bspw. per Javascript ausgeloest wird.
PHP und sonstige serverseitigen Techniken sind und bleiben jedenfalls aussen vor.

MfG ChrisB