Rolf B: Adressanzeige

Beitrag lesen

Hallo fiversen,

Geht es - das ich die Startadresse anzeige, am besten auch wenn man sich die Seite als Favorit merkt.

Es gibt Webangebote, die zeigen immer nur https://www.example.org an und präsentieren dem Anwender die unterschiedlichsten Inhalte. Auf diese Weise verhindern sie Deep Linking, und sie sabotieren auch die Möglichkeit, dass der Nutzer die Vor-/Zurück Navigation des Browsers verwendet.

Solche Verfahren basieren darauf, interne Links oder Webseiten-Buttons mit JavaScript zu behandeln und mit dem Script die neuen Inhalte zu erzeugen. Aus Sicht des Browsers findet dann überhaupt keine Navigation statt. Ich nehme an, dass man durch "geschickten" Einsatz von Cookies, anderen HTTP Headern und Serverlogik ähnliches erreichen kann.

Aber das sollte man nicht tun. Eine Webseite (nicht Website) braucht eine(n) eindeutige(n) URL. Dadurch ist sie verlinkbar, und dadurch kann der Browser auch erkennen, was er wie cachen kann.

Häßliche, technische URLs in "schicke" URLs zu übersetzen benötigt entweder URL Rewriting, wie Felix es ansprach. Dabei sorgt man im Webserver mit einer geeigneten Rewrite Rule dafür, dass aus

https://www.example.org/foo/bar/16

der Aufruf von

start.cgi?controller=foo&aktion=bar&data=16

wird. Ein solches Controller/Action/Data Pattern findet man häufig auf Webseiten, die nach dem MVC-Muster (Model-View-Controller) programmiert wurden. Das start.cgi lädt den geforderten Controller als Modul (das kann bei Anwendung objektorientierter Programmierung eine Klasse sein) und ruft darin die gewünschte Aktion als Funktion auf.

Statt URL Rewriting kann man - einen geeigneten Webserver oder geeignetes Knowhow vorausgesetzt - auch ein HTTP Modul schreiben, dass solche URLs direkt versteht und die entsprechenden Module lädt. ASP.NET von Microsoft macht sowas.

Ich selbst habe sowas auch mal ohne Rewriting mit Apache und PHP gebaut, weil ich - Schande über mich - da noch gar nicht wusste, dass es das gibt. Man kann einem Server nämlich auch sagen, dass er eine Datei ohne Erweiterung als PHP Script deuten soll. Bei Abruf von /foo/bar/17 ruft er dann foo.php auf und stellt das /bar/17 in der Servervariablen PATH_INFO zur Verfügung. Man sollte dann nur verbieten, dass die normalen User Dateien in den Webspace hochladen können, sonst laden sie eine Datei "dings" hoch und lassen sie als PHP laufen...

Rolf

--
sumpsi - posui - obstruxi