Sven Rautenberg: Tipps und Tricks

Beitrag lesen

Moin!

Nö Leute, das könnt ich nicht machen - lasst euch bitte was anderes einfallen.

Ich hab volles Verständnis für deinen Unmut - entweder es funktioniert wie gewünscht, oder es rettet zumindest die Daten. Naja, das Formular ist halt schnell mal entstanden und so gesehen noch Beta. Schade, dass du auf diese Weise Fehler findest.

Wie schon erwähnt: Ein Browser, der eine standard-gemäße History-Funktion realisiert, hätte geholfen. Opera ist so ein Browser. Vom IE und Mozilla/Netscape (egal welche Version) kann man das leider nicht sagen - die rufen beim "Zurück" in der Regel die Seite neu vom Server ab, und in dieser Seite fehlen natürlich deine Eingaben.

Ich schreib meine Artikel schon immer für das i-netlab

http://i-netlab.de/downloads/notfound.html

Zum Artikel noch eine wichtige Anmerkung:
Mit dem ersten Beispiel:
ErrorDocument 404 http://domain.tld/pfad/404seite.html
leitest du den Benutzer _per Redirect_ auf die Fehlerseite. D.h. der User-Agent erhält einen Redirect (301 oder 302) und ruft dann ganz offiziell die 404-Seite ab - mit dem Statuscode 200. Es erfolgt _keinerlei_ Ausgabe eines Statuscodes 404.

Diese Verhaltensweise ist wahrscheinlich aber nicht erwünscht. Erstens: Die URL der Fehlerseite erscheint im Browser. Das macht es bei Tippfehlern in der ursprünglichen URL schwer, diese mal eben schnell zu korrigieren.

Zweitens: Clients, die den Statuscode 404 auswerten (wie zum Beispiel Suchmaschinen, Linkchecker etc), kriegen bei dieser Konfiguration keinen Status 404 vorgesetzt, sondern einen Redirect auf eine real existierende Seite (dass diese von "URL nicht gefunden" quatscht, versteht ein Computer in der Regel nicht). Wenn du Pech hast, aktualisiert z.B. eine Suchmaschinen den falschen Link so, dass er zukünftig auf deine Fehlerseite zeigt. Und auch dein Logfile enthält keinerlei 404-Codes, so dass du auch Verlinkungsfehler auf deiner eigenen Site nicht findest, wenn du nach 404-Codes suchst.

Deshalb: Lieber wie im zweiten Beispiel mit der CGI-Seite einfach einen absoluten Pfad _ohne_ Domainangabe machen. Das sorgt dafür, dass statt der Standardfehlerseite die eigene Alternative gezeigt wird - und dass der Statuscode 404 ausgeliefert und in die Logfiles geschrieben wird.

Die Variante mit Redirect ist wirklich nur dann sinnvoll, wenn fehlerhafte URLs wirklich _umgeleitet_ werden sollen, beispielsweise auf eine Suchmaschine auf einem anderen Server, welcher unter einer anderen Domain erreichbar ist. Es ist aber ohne Probleme möglich, auf der normalen Fehlerseite ein Suchformular einzubauen, so dass der Benutzer nicht kommentarlos auf die Suchmaschine gelangt, sondern über den URL-Fehler informiert wird und ggf.

- Sven Rautenberg

--
Diese Signatur gilt nur am Freitag.