Eigene Fehlerseiten in Joomla

Professionelle Internetangebote haben individuell angepasste Fehlerseiten im Design der Hauptseite. Über ein kleines Script können Fehlermeldungen auch direkt in der Seite gestaltet werden.

Joomla besitzt einen eigenen Mechanismus für Fehlermeldungen. Die Fehlerseiten können ausgetauscht werden, indem man direkt in dem Template-Verzeichnis eine Datei namens error.php anlegt und darüber die Fehler auswertet. Im folgenden Script wird der Fehlercode ausgewertet und auf einer Seite mit der entsprechenden Fehlermeldung verlinkt. Bei Fehlern wie 500 und 501 macht eine Verlinkung keinen Sinn, da Joomla dann vermutlich nicht mehr funktioniert. Daher wird die Fehlermeldung direkt ausgegeben.

error.php
<?php
/** Eigene Fehlerseite. */
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
switch ($this->error->code ) {
case '404': // Seite nicht gefunden
JApplication::redirect("index.php?option=com_content&id=17");
break;
case '403': // Zugriff verweigert
JApplication::redirect("index.php?option=com_content&id=18");
break;
default: // Vermutlich ein 500er Fehler.
echo "<html><head><title>Insert title here</title></head>"
."<body><h1>Error".$this->error->code."</h1>"
."<p>Es ist ein schwerer Fehler aufgetreten."
." Bitte informieren Sie die Systembetreiber.</p></body></html>";
}
?>

Die ID der Artikel (im Beispiel 17 und 18) ist natürlich von Seite zu Seite unterschiedlich. Alternativ kann man auch ein verstecktes Menü anlegen und dort die Artikel verlinken. Sofern mod_rewrite eingeschaltet ist, kann man dann einfach die Klartext-URL (z.B. error-404.html) verwenden.

Speziell nach einem Relaunch und Wechsel der technischen Plattform laufen viele Verweise von anderen Webseiten ins Leere, wenn sie auf Unterseiten verlinkt sind. Man kann zwar durch Anpassen der .htacess Datei und mod_rewrite einiges abfangen, ganz verhindern lassen sich die 404-Fehler (Seite nicht gefunden) nicht. Eine andere Möglichkeit 404-Fehler abzufangen, ist die Benutzung der Suchfunktion von Joomla. Dabei wird einfach der letzte Teil der angefragten Seite (REQUEST_URI) genommen und der internen Suche übergeben. Dann bekommt der Besucher im Idealfall eine Liste mit möglichen Seiten, in denen der Begriff vorkommt.

Siehe auch

docs.joomla.org/Custom_error_pages