Mehrere ErrorDocument 404 in einer .htaccess Datei

Erstellt am 01.10.2014

Bei umfangreichen Webprojekten steht man gelegentlich vor dem Problem, dass mehreren Domains auf ein Root-Verzeichnis des Webserver connectiert sind. Sei es, weil man eine separate Domain für eine Testumgebung benötigt oder ein zentrales Framework für verschiedene Projekte einsetzt. In der Regel werden Fehler bei solchen Installationen direkt im Framework abgefangen. Es gibt aber Situationen, z.B. beim Zugriff auf ein nicht (mehr) vorhandenes Verzeichnis, wo diese interne Fehlerbearbeitung nicht greift und man zwangsweise auf die Weiterleitung auf eine Fehlerseite in der Serverkonfiguration angewiesen ist.

Nun steht man vor einem Dilemma. Wenn die Fehlerseite nicht nur HTML ausgibt, sondern auch Bilder, CSS-Dateien u.ä. enthält, muss man in ErrorDocument 404 einen absoluten Pfad angeben, ansonsten werden die externen Elemente der Seite u.U. nicht korrekt eingebunden. Der absolute Pfad kann jedoch nur auf eine Domain verweisen, was dazu führt, dass ein Nutzer unverhofft in einem anderen Projekt landet. Beide Situationen sind mehr als unschön.

Der Ausweg ist eigentlich recht einfach, man muss nur drauf kommen. Im ersten Schritt legt man im root-Verzeichnis eine php-Datei und gibt diese mit relativen Pfad in der .htaccess an - z.B.:

ErrorDocument 404 /error404.php

Nun fragt man in error404.php die aufgerufene Domain ab und leitet per header()-Befehl auf die eigentliche Fehlerseite um:

<?php
$domain = $_SERVER["SERVER_NAME"];

if (eregi("domainname1" ,$domain)) {
header ("Location: http://".$domainname1."/fehlerseite.html");
exit;
}

if (eregi("domainname2" ,$domain)) {
header ("Location: http://".$domainname2."/fehlerseite.html");
exit;
}
?>

Suche
Suche starten...

Geben Sie den gewünschten Suchbegriff ein und klicken dann auf die Lupe.