Seltsame Fehlerbehandlung bei Error 404
Julian Hofmann
- webserver
Hallo,
eigentlich durch Zufall bin ich auf etwas seltsames auf meinen Account bei Schlund gekommen:
Ich provoziere einen 404-Fehler, dieser wird (eigentlich) über die htaccess im Hauptverzeichnis mit einer Datei 404.php abgefangen. Soweit die Theorie.
Test 1: Ich versuche die nicht existente Datei nix.html zu erreichen
=> korrekte Fehlermeldung 404.php
Test 2: Ich versuche die nicht existente Datei nix.php zu erreichen
=> Standard-Fehlermeldung 500 (obwohl eigene 500er-Meldung definiert)
Test 3: Ich versuche die nicht existente Datei nix.php3 zu erreichen
=> "Fatal error: Unable to open /homepages/.../nix.php3 in - on line 0
No input file specified."
Habe beim besten Willen keine Ahnung, warum der ansich selbe Fehler unterschiedlich behandelt wird. V.a. ist es mir auch ein Rätsel, warum sich Test 2 und 3 unterschieden (php3 wird zwar von PHP3, php von PHP4 interpretiert, sollte aber ja nichts weiter ausmachen).
Was ist da los bzw. falsch?
Grüße aus Würzburg
Julian
Hallo,
hallo
Test 1: Ich versuche die nicht existente Datei nix.html zu erreichen
=> korrekte Fehlermeldung 404.php
schön :)
Test 2: Ich versuche die nicht existente Datei nix.php zu erreichen
=> Standard-Fehlermeldung 500 (obwohl eigene 500er-Meldung definiert)
Sicher, daß Du beim definieren deiner eigenen 500er-Meldung alles richtig gemacht hast? .. sieht nämlich nicht danach aus.
Test 3: Ich versuche die nicht existente Datei nix.php3 zu erreichen
=> "Fatal error: Unable to open /homepages/.../nix.php3 in - on line 0
No input file specified."
keit HTTP-Fehler sondern eine Fehlermedlung von PHP, allso vollkommen korrekt.
Habe beim besten Willen keine Ahnung, warum der ansich selbe Fehler unterschiedlich behandelt wird.
Das sind drei paar Stiefel.
K@rl
Hallo K@rl,
Das sind drei paar Stiefel.
Wie? Eine nicht gefundene PHP-Datei nd eine nicht gefundene PHP-Datei werden ganz normal verschieden behandelt? Nene, zumindest das dürfte ja genau der gleiche Stiefel sein.
Zur 500er Definition: Ist genauso definiert wie der 404er, der ja bei nix.html auch wunderbar seinen Dienst tut.
Grüße aus Würzburg
Julian
Hi Julian,
Wie? Eine nicht gefundene PHP-Datei nd eine nicht gefundene PHP-Datei
werden ganz normal verschieden behandelt? Nene, zumindest das dürfte
ja genau der gleiche Stiefel sein.
Es _sollte_ dasselbe sein, ja.
In beiden Fällen _sollte_ der PHP-Interpreter das tun, was der Webserver auch tun würde, nämlich den HTTP-Status 404 setzen und fertig.
Die Tatsache, daß der eine der beiden PHP-Interpreter sich allerdings "einmischt" und selbst eine Fehlermeldung erzeugt (also glaubt, es "besser zu wissen", im besten M$-Stil ...), und der andere glaubt, die fehlende Datei als "internen Server-Fehler" behandeln zu müssen (mit der Begründung: "Ich bin eine Systemkomponente, und mir fehlt eine notwendige Ressource"), sorgt dafür, daß es eben doch drei verschiedene Fälle werden - mit allen naheliegenden Nachteilen für Dich, der Du diese Fällen behandeln willst.
Wobei der Error500 ja wenigstens noch unter Deiner Kontrolle steht (sofern Dein error500-Handler korrekt installiert ist), während die PHP-eigene Meldung (womöglich auch noch mit Status-Code 200?) Dir die Möglichkeit zur Behandlung völlig aus der Hand nimmt.
So jedenfalls sieht es für mich (der ich kein PHP kann) aus ...
Viele Grüße
Michael