WauWau: korrekter HTTP-Statuscode für 404...

Beitrag lesen

Hallo wahsaga,

Wenn also ein 404 beim Apachen ankommen würde,
beim apachen kommt kein 404 "an".

Sorry für meine liederliche Ausdrucksweise ;-). Ich meine in etwa
"Wenn also ein 404-Statuscode (im Header) vom CGI-Programm an den Apachen gesendet wird,..."

bei dem kommt zunächst mal der request des clients an, und die ressource wird auch gefunden - sonst könntest du ja nicht _im_ script per header() den status code 404 ausgeben.

ganz genau. Request wird nämlich durch die mod_rewrite-Mühle gejagt, dann was gefunden (ansonsten kommt sowieso ein 404, vom Apachen generiert, so wie es soll), dann der Script (mit parametern) aufgerufen, und wenn der dann sagt, dass das, was eigentlich aufgerufen wurde, nicht existiert, dann gibt er einen solchen "404-Header" (...) aus. Also an den Apachen, der es wiederum an den Client weiterleitet.

header() ist aber dazu da, zusätzliche _response_header festzulegen, also nichts was beim apachen "ankommt", sondern was dieser zurückgibt.

Ja, das ist mir schon klar ;-). Übrigens ist es hier kein zusätlicher header, sondern ganz genau die erste Zeile des Headers. Denn afaik fangen HTTP-Header ja mit

HTTP/1.0 XXX BESCHREIBUNG

an (XXX = Statuscode).

hätte ich von ihm erwartet, dass er als content nach dem 404-Header eine 404-Fehlerbeschreibung dranhängt.
für den apachen ist ja gar kein "file not found" aufgetreten.

Richtig, aber er hat den Header bekommen, danach wurde der Script beendet. Er sendet also an den Client lediglich einen Header, kein "Content". Also könnte er sich denken: "So, jetzt hänge ich da mal meine eigene 404-Fehlerbeschreibung dran". Wäre doch zu schön um wahr zu sein, oder?

die ressource wurde gefunden, und _diese_ hat jetzt festgelegt, welchen zusätzlichen header der apache dem client zurückschicken soll.

Wobei es keine zusätzliche war ;-) - oder?

btw: Meine Lösung -> [pref:t=80707&m=469673]. Nachdem ich die erste Headerzeile mit dem 404 ausgebe, kommt noch ein "Location"-header, der den Client auf eine ordentliche 404-Seite verweist[1].

WauWau

[1] Armer Klient wird richtig durchgeschüttelt: Die Seite dort verweist ihn dann nochmal weiter - und letztenendes bringt dann der "404"-Header auch nix mehr ;-)

--
ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
E-Mail WauWau: [mailto:der-wauwau@gmx.de]