Hallo,
- Ist das ein URL, dann sendet gzip_cnc eine HTTP-
302-Weiterleitung dorthin, hängt jedoch den URL
der ursprünglich angeforderten Seite als Parameter
"url" an den 404-handler-URL dran.
Damit hast Du immer noch einen 302 statt des für
"File not found" vorgesehenem 404.
Tja, mehr geht einfach nicht, wenn man kein Modul ist
und keine internen Subrequests machen kann.
Mach Du mal den Browser klar, daß sie im Falle eines
404 trotzdem eine Redirection ausführen sollen ...
Soll er ja nicht. 404 ist "Datei nicht gefunden".
Der IE hat (hatte?) dafür sogar eine Standarddatei, falls außer dem 404 nix kommt (wohl wg IIS >;-> )
Mein 404-Handler möchte eigentlich gerne language
negotiated werden),
Muß das denn wieder sein? *sigh*
Klar muß das sein. Der Apache unterstützt an dieser
Stelle einen URL. Und es gibt durchaus Gründe dafür.
Welche?
Die Sprache hast Du eh entweder im UA oder eben gar nicht.
UA kannst Du abfragen und dementsprechend die 404-Datei nach Sprache auswählen.
404 sind doch imer statisch, oder?
Welche Spielerei will man da noch einbauen?
- Ein Programm an dieser Stelle könnte mir eine Mail
senden etc. - vielleicht habe ich ja keinen Zugriff
auf ein error_log.
Auch einer Art von DoS ;-)
- Ein Programm an dieser Stelle könnte den Referrer
untersuchen und dadurch erkennen, ob ein broken link
innerhalb meiner eigenen Domain vorliegt oder ob das
ein mißlungener Einsprung von außen war (oder gar
ein Tippfehler in der URL-Zeile, wobei ein leerer
Referrer mitgeschickt würde) und dann den ausgegebe-
nen Text darauf bedingt formulieren.
Sehr schön.
Meinst Du das interessiert irgendjemanden außer Dir (zwecks Debugging)?
Da wird gesehen "File Not Found" (oder auch in anderer Sprache, aber soviel versteht auch fast jeder). Das Wie und Warum interessiert doch keine Sau.
Sprache? Gut, das geht aber auch einfach in gzip_cnc.
(Content negotiation auf Sprache geht, da 404 in
verschiedenen Sprachen auch nur als statische
Dateien rumhängen sollten)
Dazu müßte gzip_cnc aber die komplette Negotiation mit
mehreren Endungen gleichzeitig durchführen!
Könnte ja sagen: ja und?
Tu's aber lieber mal nicht ;-)
Beispielsweise müßte es meine ErrorDocument-Datei mit
dem Namen "missing.htm.shtml.de" verstehen!
Ich will nämlich Sprachvarianten _und_ SSI in Kombi-
nation verhandeln - und ich will gleichzeitig die
Endung vor den Besuchern verstecken, die diese Datei
mal direkt ansprechen (sie ist _auch_ verlinkt).
Wozu der ganze Aufwand?
Das ist höchsten für Debuggingzwecke interessant, aber da kann man auch gzip_cnc solange ganz ausschalten. Ist billiger ;-)
Ich mag ja mit meiner Meinung ganz alleine dastehen, aber mehr als die Meldung "Datei nicht gefunden" interessiert wirklich kein Schwein!
Könnte man mal hier ein Umfrage starten ;-)
Also mehr als die Möglichkeit "'blabla.html' wurde
nicht gefunden, bitte überprüfen sie die
Schreibweise" in allen ca 5.000 Spracehn und
Dialekten der Welt anbieten zu können sehe ich
wirklich nicht.
Ich auch nur in zwei (deutsch und englisch).
Aber was würdest Du als englischsprachiger Besucher
meiner gzip_cnc-Seiten mit diesem Text hier anfangen:
Wieder über eine misslungene 404 Seite fluchen und verschwinden.
Warum?
Einmal ist das Design genauso, wie die der anderen Seiten.
Dann: war es Dir zu peinlich ein deutliches "404" obendrüberzuschreiben?
Aber das ließe sich noch lösen, kein großes Problem.
Das ist halt _etwas_ mehr als "Überprüfen Sie die
Schreibweise für etwas, das Sie gar nicht selbst ge-
schrieben haben" (was ich übrigens bescheuert finde).
Ja, deshalb habe ich diese Formulierung auch gewählt ;-)
Schön finde ich das alles nicht (zumal ich jetzt
noch die Dokumentation entsprechend umschreiben
muß) ...
Jaja, Programmierer und Dokumentation ... ;-)))
Meine hast Du gesehen - ich Deine noch nicht ...
Quod demonstrandum erat. ;-)
Die Kommentare in meinem Paket sind schon _sehr_ ausführlich.
"Mähr gipps nich" ;-)
(Bleibt noch die Frage, was Du unter "wesentlichen
Browsern" verstehst. Aber eigentlich möcht' ich das
auch wiederum gar nicht wissen ;-)
Die neuesten Versionen von Mozilla, Opera, M$IE und
Netscape 4.
NN4 auch?
Ja gut, das sind dann wirklich alle wichtigen.
Dafür, daß dieser Handler so wenige Informationen
vom Apache kriegt, muß er ganz schön viel HTTP
machen ... gnlpfts.
Na, soviel ist es nun wirklich nicht. Ich bitte Dich! ;-)
Und außerdem: ja und? ;-)))
Es geht ja nicht darum, daß ich zu faul wäre, es zu
programmieren.
Aber je mehr HTTP-Zeug in das Programm hinein muß,
desto abschreckender wirkt die Dokumentation für po-
tentielle Benutzer, die selbst nicht programmieren
können. Und es wird auch immer schwerer für sie,
eigene Fehler bei der Installation zu finden.
Dann muß sie verborgen bleiben.
Bzw nur dem "Expertenmodus" vorbehalten bleiben, also per Default ist das Programm mit ein paar einfachen Handgriffen einzurichten, aber wenn man möchte, kann man auch alles Mögliche einrichten und ändern.
so short
Christoph Zurnieden