Fehlerseiten weiterleiten, header 404 übergeben aber dann 302 ?
Charsten
- php
ich habe ein Problem, wenn bei mir eine Seite aufgerufen wird die es nicht gibt wird diese weitergeleitet.
Also die Seite 44444.html wird aufgerufen, in der Datenbank wird nachgesehen ob diese Seite vorhanden ist, wenn nicht wird sie
über:
header("HTTP/1.0 404 Not Found");
header("Location:00000.html");
weitergeleitet.
Doch im Header dann ist sie dann nicht mehr 404 sondern HTTP/1.1 302.
Wie kann ich diese verwandlung verhindern?
Charsten
Hi,
Also die Seite 44444.html wird aufgerufen, in der Datenbank wird nachgesehen ob diese Seite vorhanden ist, wenn nicht wird sie
über:
header("HTTP/1.0 404 Not Found");
header("Location:00000.html");weitergeleitet.
Doch im Header dann ist sie dann nicht mehr 404 sondern HTTP/1.1 302.
Wie kann ich diese verwandlung verhindern?
Indem du nicht weiterleitest.
MfG ChrisB
header("HTTP/1.0 404 Not Found");
header("Location:00000.html");
Doch im Header dann ist sie dann nicht mehr 404 sondern HTTP/1.1 302.
Wie kann ich diese verwandlung verhindern?
Location ist ein Attribut für eine Weiterleitung; wenn du Location angibst, leitest du auch weiter, entsprechend muss der Status 302 lauten, nicht 404. PHP ist (wie üblich) so nachsichtig, dir unter die Arme zu greifen, da du die Funktion von Location nicht selbst nachlesen wolltest.
Willst du informativen Text mit dem 404 ausgeben, füge ihn direkt in die Ausgabe ein, anstatt irgendwohin weiterzuleiten.
Hallo,
Location ist ein Attribut für eine Weiterleitung; wenn du Location angibst, leitest du auch weiter, entsprechend muss der Status 302 lauten
oder 301.
Willst du informativen Text mit dem 404 ausgeben, füge ihn direkt in die Ausgabe ein, anstatt irgendwohin weiterzuleiten.
ACK. Und welche URL ursprünglich angefordert und nicht gefunden wurde, kannst du dort in $_SERVER['REQUEST_URI'] nachlesen. Darauf aufbauend kann man dem menschlichen Besucher sogar Alternativen anbieten für das, was er eigentlich gesucht hat, während die HTTP-Engine des Browsers trotzdem die Info kriegt "Das war wohl nix".
Ciao,
Martin