Wie erstelle ich eine eigene Fehlerseite?
Was passiert, wenn ein Besucher Ihrer Website eine Seite aufruft, die es nicht gibt? Es erscheint eine entsprechende Fehlermeldung, die darauf hinweist, dass die gewünschte Seite nicht existiert. Dabei handelt es sich in der Regel um eine Standard-Seite, die vom jeweiligen Hosting-Anbieter bereit gestellt wird. Das heisst, diese Seite passt meist weder inhaltlich noch vom Aussehen zu Ihrem Web-Auftritt; oft erscheint die Fehlermeldung auch noch in Englisch, was für einen deutschsprachigen Web-Auftritt dann zusätzlich unschön ist.
Viel besser wäre es doch, wenn unsere Webseiten-Besucher eine zum Web-Auftritt passende Fehlerseite zu sehen bekämen. Damit das funktioniert, brauchen wir im Prinzip nur zwei Dinge:
- Eine Seite in unserem Projekt, die als Fehlerseite dient und
- die Möglichkeit, dem Server diese Seite als gewünschte Fehlerseite mitzuteilen. Das geht normalerweise per .htaccess-Datei auf dem Server.
Und so geht's
Die eigene Fehlerseite in weblica
Legen Sie eine neue Detailseite (Ctrl-D) direkt unterhalb der Startseite an. Geben Sie der Seite den gewünschten Titel, z.B. "Seite nicht gefunden". Sie können die Seite wie gewohnt nach Ihren Wünschen gestalten. Sie können beispielsweise Themen-bezogene Aufmacher auf der Basis von Schlagwörtern anbieten. Oder einfach einen netten Text schreiben, der darauf hinweist, dass die gewünschte Seite nicht gefunden wurde.
Hinweis

Fehlerseite in der Site-Struktur
Achten Sie darauf, dass die Seite direkt unterhalb der Startseite liegt und nicht eine Unterseite einer anderen Haupseite ist. Das ist wichtig, damit die Seite für Ihren Auftritt korrekt funktioniert.
Die Fehlerseite beim Webserver bekannt machen
Als nächstes benötigen wir den Dateinamen der Fehlerseite, damit wir diese dem Web-Server Bekannt machen können. Öffnen Sie hierzu die Seiten-Eigenschaften der Seite und wechseln Sie auf die Registerkarte HTML/CSS. Dort können Sie nun die Fehlerseite nach Ihren Wünschen benennen, z.B. error_404. Auf jeden Fall müssen Sie die Datei-Erweiterung von .html auf .php ändern - warum, erfahren Sie gleich. Doch zuerst wollen wir den Server dazu bringen, unsere Fehlerseite anzuzeogen anstelle der Standard-Fehlerseite für nicht-gefundene Seiten. Auf den meisten Web-Servern ist dies mit Hilfe einer sog. .htaccess-Datei möglich.
.htaccess oder nicht?
Wenden Sie sich an Ihren Provider, wenn Sie nicht wissen, ob Ihr Server die Konfiguration per .htaccess erlaubt. Manche Provider bieten alternativ die Möglichkeit, den Pfad auf eigene Fehler-Seiten über die Administrations-Oberfläche zu hinterlegen.
Erstellen Sie eine .htaccess-Datei mit nachstehendem Inhalt bzw. ergänzen Sie eine bereits bestehende Datei:
ErrorDocument 404 /error_404.php
Setzen Sie für den Dateinamen in Rot den von Ihnen gewählten Namen ein. Speichern Sie die Datei und laden Sie diese dann mit Hilfe eines FTP-Programms wie z.B. Filezilla oder FireFTP in das Wurzelverzeichnis Ihres Webauftritts. Anschliessend publizieren Sie Ihr Projekt. weblica überträgt dann die neue Fehlerseite auf den Server.
Hinweis: FTP-Zugangsdaten
Wenn Sie Ihren Web-Auftritt bereits mit weblica publiziert haben, dann können Sie in den Server-Einstellungen des Projekts die nötigen Einstellungen nachschauen; das Wurzelverzeichnis entspricht hierbei dem Server-Pfad in den Server-Einstellungen.
Das Ergebnis testen
Rufen Sie nun Ihren Webauftritt im Browser mit einem ungültigen Datei-Namen auf, z.B. weblica.ch/gibtsnicht.html. Als Ergebnis sollten Sie nun Ihre neue Fehlerseite sehen. Wenn das nicht klappt, stellen Sie sicher, dass Sie den Dateinamen in der .htaccess-Datei korrekt hinterlegt haben und der Server eigene Fehler-Dokumente unterstützt.
Das Problem mit relativen Pfad-Angaben lösen
Leider hat die Sache noch einen gewichtigen Haken: Wenn Ihre Webseiten-Besucher versuchen, eine Seite in einem Unterverzeichnis aufzurufen, z.B. weblica.ch/services/gibtsnicht.html, dann wird zwar wie erwartet die Fehlerseite angezeigt, doch die Seite sieht nicht so aus, wie sie sollte: das Layout ist fehlerhaft und alle Bilder fehlen. Was ist passiert?
Der Web-Server ruft die Fehlerseite stets ausgehend vom angegeben Unterverzeichnis auf, im Beispiel also services. Da weblica alle Ressourcen und CSS-Dateien relativ verlinkt, findet der Web-Server die benötigten Dateien der Fehlerseite nicht, da diese ja im Wurzelverzeichnis liegt. Die Folge: die Darstellung ist im Eimer.
Zum Glück lässt sich das Problem mit ein paar Zeilen PHP-Code im Datei-Head der Fehlerseite lösen. Öffnen Sie hierzu die Seiten-Eigenschaften der Fehlerseite und wechseln Sie auf die Registerkarte PHP und hinterlegen Sie folgenden Code im Datei-Head:
<?php
if (substr_count($_SERVER['REQUEST_URI'], '/') > 1) {
header('HTTP/1.1 404 Not Found');
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/error_404.php');
exit;
}
?>
Setzen Sie hierbei wiederum für den Dateinamen in Rot den von Ihnen gewählten Namen der Fehlerseite ein.
Dieses PHP-Skript sorgt dafür, dass die Fehlerseite stets im Wurzelverzeichnis des Auftritts aufgerufen wird, so dass auch die Pfadangaben für die CSS-Dateien und Bilder korrekt sind. Und jetzt wissen Sie auch, warum wir zu Beginn die Dateierweiterung von .html auf .php
Publizieren Sie Ihren Auftritt und testen Sie das Ganze. Wenn Sie alles richtig gemacht haben, dann sollte die Fehlerseite korrekt angezeigt werden, auch bei Versuch eine nicht-vorhandene Seite in Unterverzeichnissen aufzurufen.