Wie bereits in vielen anderen Fragen erwähnt, wird der Web-Server mit dem Statuscode 500 Interner Serverfehler statt 200 OK antworten, wenn display_errors in der php.ini auf Aus gestellt wird, wenn ein schwerwiegender Fehler auftritt. Ich habe einen einfachen Test mit einer nicht definierten Funktion auf, um das Verhalten zu erklären:Warum ändert display_errors den HTTP-Statuscode?
php.ini
display_errors = On
index.php
<?php test();
Gibt:
Fatal error: Call to undefined function test()
in D:\xampp\htdocs\index.php on line 1
oder eine leere Seite, wenn ich den Funktionsaufruf wie folgt stumm:
<?php @test();
In beiden Fällen beantworten Header sind wie folgt:
HTTP/1.1 200 OK
Date: Tue, 10 Jul 2012 20:08:22 GMT
Server: Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By: PHP/5.3.8
Content-Length: 0
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
Während php.ini Wechsel:
display_errors = Off
Ursachen:
HTTP/1.0 500 Internal Server Error
Date: Tue, 10 Jul 2012 20:10:35 GMT
Server: Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By: PHP/5.3.8
Content-Length: 0
Connection: close
Content-Type: text/html
Kann mir jemand erklären, die Unterlegung Mechanismus, der den Webserver mit 500 antwortet, wenn display_errors ausgeschaltet ist?
Interressant, würde ich recon, dass es immer eine 500 zurückgeben sollte, sobald es fatale Fehler gibt. Ich würde auch gerne wissen, warum ... –
duplizieren: http://StackOverflow.com/Questions/3570747/Display-500-error-on-any-error-in-Apache –
Das scheint mir eine andere Frage –