Zum Inhalt springen

404-Headeer

Erstellt am 19. Oktober 2007 · 5 Antworten · letzte Antwort am 5. Februar 2008

Tags: Frage

suit4 ·

Google beschwerte sich, das meine Seite bei nicht gefundenen Seiten nicht einen 404 Header, sondern einen 200 OK Header ausgibt.

Das soll so ja nicht sein.

Da hier so einige rumgeistern, denen es ähnlich geht, hier meine Lösung:

class user_pageNotFound {
   function pageNotFound($param, $ref) {

      ...

      header('Status: 404 Not Found');
      header('HTTP/1.0 404 Not Found');
      header('Location: http://www.deinedomain.org/error-404.html',false,404);
   }
}

Und für die Seite, die das Fehlerdokument enthält, habe ich ein Extension-Template erstellt, und folgendes ins Setup geschrieben:

Setup

config.additionalHeaders = HTTP/1.0 404 Not Found

Dann klappt's auch mit dem Nachbarn.

Das Firefox-Webdeveloper-plugin zeigts danach korrekt an, und
http://www.404checker.com/full-header-checker auch.

Wenn das jemand mal gegenchecken möchte ...

suit4 ·
Norman2k schrieb

Das geht auch einfacher 😃
Im Install-Tool "[pageNotFound_handling]" auf 1 setzen

Norman, das ist so an sich ja schon korrekt, aber vielleicht mag ich ja Fehlerseiten mit Layout lieber.

suit4 ·

habe grad festegestellt, das mein Code oben nicht ganz korrekt funktioniert und unter Umständen zu einer komplett leeren Seite führt.
Das kommt von den beiden Parametern beim letzten header-Aufruf.

class user_pageNotFound {
   function pageNotFound($param, $ref) {

      $domain = $_SERVER["HTTP_HOST"];
      $target = "index.php"; // oder wo es auch immer hingehen soll
      header('Status: 404 Not Found');
      header('HTTP/1.0 404 Not Found');
      header(sprintf('Location: http://%s/%s',$domain,$target));
   }
}

So geht's auf jeden Fall besser. Habe jetzt aber noch nicht des Googles Reaktion geprüft.