Diese Anleitung wurde in Joomla von Version 3.2.4 – 3.4.8 – 3.5.1 – 3.9.13 getestet.
Ziel soll es sein eine eigene 404 Seite zu erstellen, sodass Besucher auf diese umgeleitet werden, wenn z.B. der Content nicht gefunden wird, zudem wird ein korrekter 404 Statuscode erzeugt. Die Schritte sind recht einfach und in wenigen Minuten erledigt.
1. einen neuen Beitrag / Artikel erstellen – Titel z.B. 404 – entsprechend einen aussagekräftigen Text schreiben, empfehlenswert wären noch ein Link zur Hauptseite, evtl. Sitemap und ein Suchfeld
1.1 die ID des Beitrages „404“, die rechts unter Inhalt: Beiträge zu finden ist, merken
3. error.php aus eigenem Templateverzeichnis sichern / Backup erstellen
4. error.php aus dem Verzeichnis /templates/system in dein eigenes Template kopieren
5. die kopierte error.php öffnen und direkt unter der Zeile:
defined('_JEXEC') or die;
Folgendes hinzufügen:
if (($this->error->getCode()) == '404') {
header("HTTP/1.0 404 Not Found");
echo file_get_contents(JURI::root().'index.php?option=com_content&view=article&id=404-Article-ID');
exit;
}
Hier deine gemerkte Beitrags-ID einfügen, speichern und schon ist deine eigene 404 Seite fertig.
falsche Code im Netz
if (($this->error->getCode()) == '404') {
header('Location: /index.php?option=com_content&view=article&id=Article-ID&Itemid=MENU-ID');
exit;
}
Der obige Code erzeugt keinen 404 Statuscode sondern einen 200er. Daher ist dieser nicht korrekt und verwirrt Suchmaschinen und sollte nicht verwendet werden.
Interessiert in verschiedenste IT Themen, schreibe ich in diesem Blog über Software, Hardware, Smart Home, Games und vieles mehr. Ich berichte z.B. über die Installation und Konfiguration von Software als auch von Problemen mit dieser. News sind ebenso spannend, sodass ich auch über Updates, Releases und Neuigkeiten aus der IT berichte. Letztendlich nutze ich Taste-of-IT als eigene Dokumentation und Anlaufstelle bei wiederkehrenden Themen. Ich hoffe ich kann dich ebenso informieren und bei Problemen eine schnelle Lösung anbieten. Wer meinen Aufwand unterstützen möchte, kann gerne eine Tasse oder Pod Kaffe per PayPal spenden – vielen Dank.
Hallo Lothar, wie kann ich die 404-Seite aus der Anzeige der Module „Neuste“ und „Meist aufgerufen“ ausschließen. Bei mir wird die Seite leider angezeigt. Die 404-Seite ist „Uncategorised“ und keinem Menüpunkt zugeordnet. LG
Hallo JARVIS,
danke für die Dienstleistung. Eigene 404-Seite wird aufgerufen und es wird eine 404-Code erzeugt. Prima!
Ich habs jetzt wiederholt versucht. Meine eigene Fehlerseite wird ausgegeben, aber beim Statuscheck wird ein „302“ und ein „200“ Statuscode ausgegeben.
Ich habe die error.php in mein Template kopiert und unter Template/System die Original-Error.php umbenannt.
Hallo Frieder,
und vielen Dank für den Hinweis. Ich habe den Artikel überarbeitet und bereits getestet. Der Code ist nun für Joomla korrekt und erzeugt auch einen 404 Statuscode.
Dein Scriptschnipsel erzeugt diesen Fehlercode:
Parse error: syntax error, unexpected ‚:‘ in …/templates/templatename/error.php on line 11
Hallo Lothar, ich habe das eben an einer produktiven Seite mit aktuellem Joomla nachvollzogen und es gibt keine Probleme. Aus der Fehlermeldung entnehme ich dass es Doppelpunkte sind und kein Semikolon, evtl. liegts daran?