Suche nach als

Eigene Fehlerseiten

Auf dieser Seite:

Es gibt auf fremden Seiten immer wieder Links, welche auf eine meiner Seiten zielen, die nicht mehr existiert (z.B. weil ich sie verschoben oder gelöscht hatte). Wenn der Server so eine Seite nicht findet, dann zeigt der Browser eine Seite mit einer cryptischen Fehlermeldung, das ist hässlich und schockierend und verlässt die Site, statt das dem User geholfen wird. Diese Fehlerseite kann ich auch selber anbieten und dann entsprechend gestalten.

Umleitung zu Fehlerseiten

Um einem Apache-Webserver mitzuteilen, dass er z.B. beim Fehler-Statuscode 404 zu einer selber gestalteten Fehlerseite error_404.php umleiten soll, erstellt man im obersten Ordner (oder im Ordner in dem dies Gültigkeit haben soll) eine Datei namens .htaccess mit beispielsweise folgendem Inhalt:

Status 404

# Link zur Fehlerseite für Status 404
ErrorDocument 404 /errpages/error_404.php

Das #-Zeichen kommentiert eine Zeile aus, ich kann also eine Bemerkung anbringen. ErrorDocument ist das Schlüsselwort, gefolgt vom Statuscode und dem Pfad ab dem Rootverzeichnis bis zum anzuzeigenden Dokument. Falls es schon eine .htaccess Datei gibt, z.B. für die Passwort Kontrolle, dann können diese Zeilen auch dort mit rein. Windows verweigert vielleicht (je nach Version) den Versuch, eine Datei deren Namen mit einem Punkt beginnt zu speichern; ich kann sie unter einem anderen Namen speichern und nach dem Übertragen zum Server dort umbenennen.

Weil die Fehlerseite an der Stelle geladen werden, an der der Fehler aufgetreten ist, sollten die CSS Stile im Head der Datei integriert werden, der relative Pfad zu einer externen Datei stimmt von dort aus nicht mehr.

Fehler erruieren

Natürlich wären auch *.htm, *.html oder *.shtml Dateien erlaubt, aber für die Fehlercodes 401, 403, 404, 410 und 500 sollte erruiert werden, was der User wollte und es soll ein brauchbarer Tip und ein Link angeboten werden. Die Fehlerseiten können darum auch php Scripts beinhalten und heissen dann entsprechend error_404.php.
Die Umgebungsvariablen können dabei helfen. Allerdings heissen diese nach der Weiterleitung zur Fehlerseite, in der sie abgefragt werden etwas anders, nämlich REDIRECT_, denn ich will den Status wissen, welcher zur Umleitung geführt hat:

So kann ich beispielsweise prüfen, ob die Anfrage eine Datei öffnen wollte, welche ich inzwischen wissentlich gelöscht oder verschoben habe, aber von irgendwoher noch verlinkt ist. Auf diese kann ich dann einen Link anbieten. Oder ich kann auch erklären, was zu tun ist, wenn einer das Passwort verlohren hat.

Fehler direkt ausgeben

Den Fehler-Text kann ich auch direkt schon hier zur Ausgabe formuliern, statt der Angabe des Verzeichnis-Pfades schreibe ich den auszugebenden Text in Anführungszeichen (dieser Text wird im IE aber nur ab einer gewissen Grösse ausgegeben).

# Direkte Fehlermeldung
ErrorDocument 400 "Sie sind nicht autorisiert, diese Seite zu sehen. Bitte Verlangen Sie ein Passwort."

Den Fehler-Text kann ich sogar in HTML formuliern, den HTML Code schreibe ich auch in Anführungszeichen, als Spaghetti.

# HTML Fehlermeldung mit Link
ErrorDocument 404 "Die gesuchte Seite finden Sie in der <a href='/sitemap.html'>Sitemap</a>"


Valid XHTML 1.0 Check den Code.

Passwort und Schutz >> << Apache Server:
Ich bin hier: > Andere Sprachen Lehrling >>> Eigene Fehlerseiten
 
HTML und XHTML | CSS | JavaScript und DHTML | PHP und MySQL | Andere Sprachen
Letzter Update: 19.12.2009