Menü Schließen

Joomla 3 – eigene 404 Seite erstellen

Logo Joomla

 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.

6 Kommentare

  1. Thomas

    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

  2. Frieder Baumann

    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.

    • JARVIS

      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.

    • SkyNet

      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?

Schreibe einen Kommentar zu JARVIS Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert