de en it ar de de de de de de de de de de de de de de de de de de de de de de de de en oc de de en de de de de de de de de en de de de de de de de de de en de fr de de it it en de en nb en it it de de en nl de en fr en fr en en en en en sv fr de de fr fr fr sv en fr en ja fr de fr es nb fr de en en sv de de fr en fr it fr de en fr en ca de de nb en de
Dieser Artikel erläutert, wie Sie mit der Apache-Direktive ErrorDocument eigene Fehlerseiten bestimmen können. Es wird erklärt, warum Sie eigene Fehlerseiten anlegen und wie diese aussehen sollten. Schließlich wird noch gezeigt, wie Sie mit PHP Fehlerseiten dynamisch erstellen können.
Zu einer ergonomischen Webseite gehört es auch, Fehler nicht stiefmütterlich zu behandeln, sondern den Benutzer zu unterstützen, falls ein Fehler auftritt. Für Fehlerseiten ist es also wichtig,
dass sie sich nahtlos in Ihre Website einpassen, damit der Nutzer nicht das Gefühl hat, Ihre Webseite verlassen zu haben und auf einen schwerwiegenden Fehler gestoßen zu sein,
dass sie den Nutzer dabei unterstützen, die Ursache des Fehlers zu erkennen und ihm Hilfe anbieten, wie weiter verfahren werden kann,
dass die Fehlermeldung auffällig und klar, aber nicht abschreckend ist.
Jakob Nielsen schrieb dazu schon 2001 einen Artikel (Error Message Guidelines), indem er die folgenden Anforderungen an die Fehlerbehandlung stellt:
Bei einem Fehler muss es eine Fehlermeldung geben!
Die Fehlermeldung muss verständlich, höflich und präzise sein.
Bem Benutzer soll ein konstruktiver Vorschlag zur Fehlerbehandlung gemacht werden.
Wie funktioniert es technisch?
Dieser Artikel behandelt die Möglichkeiten des weit verbreiteten Apache Webservers. Für andere Webserver gibt es ähnliche Lösungen, auf die ich nicht weiter eingehen kann.
Abbildung 1: Fehlerseite des Apache 1.3 im Firefox
Das Protokoll HTTP sieht vor, dass ein Webserver u.a. mit einen Statuscode auf eine Anfrage eines Clients antwortet. Allgemein bekannt ist der Statuscode 404, der angibt, dass der Webserver die angefragte Ressource nicht finden konnte. Nun schickt der Webserver standardmäßig auch einen HTTP-Body (also eine Webseite) an den Client, der den Besucher kurz, aber entgegen allen oben beschriebenen Anforderungen, über den Fehler informiert (Abbildung 1).
Eine Erklärung aller HTTP-Statuscodes finden Sie in der RFC 2616 (HTTP/1.1 von 1999) in Abschnitt 10. Einige oft auftretende Fehler werden weiter unten besprochen.
Abbildung 2: Fehlerseite des Internet Explorers
Meiner Meinung nach noch schlechter ist die Fehlerseite des Microsoft Internet Explorer, die angezeigt wird, wenn entweder kein oder nur ein kurzer HTTP-Body vom Webserver verschickt wird (Abbildung 2). Sie versucht zwar, Hilfestellungen zu geben und zeigt die Fehlermeldung in der Sprache des Betriebssystems an, doch hat man mit Ansicht dieser Fehlerseite den Webserver praktisch komplett verlassen. Negativ ist aber vor allem das Gebaren, dem Benutzer nicht die vom Webserver zugeschickte Fehlerseite anzuzeigen, sondern eine vom Browserhersteller geschriebene.
In der Konfigurationsdatei des Apache können eigene Fehlerseiten angegeben werden, die den Benutzer besser unterstützen. Webautoren, die keinen Zugriff auf die Konfigurationsdatei haben (was bei den meisten Providern der Fall ist), können dazu die sog. Zugriffskontrolldateien des Apache nutzen, die den Dateinamen .htaccess besitzen müssen und für das Verzeichnis und alle seine Unterverzeichnisse gelten, in denen sie gespeichert ist.
In der Dokumentation des Apache wird ein Beispiel ähnlich dem folgenden für die Nutzung der Direktive aufgeführt:
ErrorDocument 403 "Der Zugriff ist nicht erlaubt."
Die erste Zeile ruft einen absoluten URL auf, wenn der Statuscode 500 gesendet wird, der zweite schickt bei einem 404 die Standard-Fehlerseite des Apache. Bei einem 401 wird ein URL der gerade aufgerufenen Domain geschickt, die letzte Zeile schickt einfach nur eine Zeichenkette.
Dabei kann ich von allen außer der dritten Methode nur abraten, da sie entweder keine Verbesserung oder weitere Probleme mit sich bringen. Sehr praktikabel und hilfreich ist jedoch der Aufruf eines URL auf der gerade aufgerufenen Domain, wie hier beim Statuscode 401 geschehen.
Wenn Sie einfache HTML-Fehlerseiten nutzen möchten, weil Sie kein PHP (oder eine andere Skriptsprache) benutzen können oder möchten, dann sollten in Ihrer .htaccess-Datei etwa folgende Einträge vorhanden sein:
Dies bewirkt, dass bei einem Aufruf von http://www.example.com/dieser/url/ist/nicht/vorhanden/gibts.nicht der Apache dem Client die Seite http://www.example.com/fehlerseiten/404.html schickt. Entgegen vielen anderen Apache-Direktiven ist hier also kein absoluter Server-Pfad anzugeben, sondern ein Pfad ausgehend von der Wurzel der aufgerufenen Domain!
Seiten: 1 2 Nächste
Tags: 404, Apache, error, error document, errordocument, fehler, fehlerseite, http, PHP, status, statuscode
Dieser Artikel wurde am 15. März 2005 um 12:14 Uhr geschriebenund ist abgelegt unter . Kommentare zu diesem Artikel können über diesen RSS-2.0-Feed abonniert werden. Sie können einen Kommentar schreiben oder ein Trackback von Ihrer Webseite hinterlassen.