2010-02-12 7 views
5

Ich habe eine Reihe von ErrorDocuments Setup in meiner .htaccess-Datei für Fehler wie 404, 401, 403 etc, die alle auf meine Fehlerseite umleiten, aber die ErrorDocument für einen Fehler 500 gesetzt ist nie angezeigt, wenn PHP eine 500 meldet. Der Code 500 wird an den Browser gesendet und die Ausgabe ist leer. Gibt es etwas Besonderes, um 500 Fehlerdokumente für die Verwendung mit PHP zu aktivieren?Apache ErrorDocument funktioniert nicht für PHP 500 Fehler

Meine Richtlinien dies wie folgt aussehen:

ErrorDocument 401 /errorpage.php?error=401 
ErrorDocument 403 /errorpage.php?error=403 
ErrorDocument 404 /errorpage.php?error=404 
ErrorDocument 500 /errorpage.php?error=500 

ich durch die php.ini haben gesucht und nichts sehen kann, die offensichtlich die Apache-Einstellungen außer Kraft setzen würde, und es gibt keine ErrorDocument Richtlinien in meiner httpd.conf entweder. Wo soll ich sonst hinschauen?

Vielen Dank im Voraus.

Antwort

-1

Ich glaube nicht, Apache lässt Sie PHP-Dateien für 500 Fehler ausführen, weil die Fehlerseite einen Fehler erzeugen könnte. Versuchen Sie, Ihren 500-Fehler in eine HTML-Datei zu rendern und richten Sie Ihre Anweisungen darauf.

+3

Danke für den Vorschlag, aber die Verwendung einer HTML-Datei macht keinen Unterschied, der Browser erhält immer noch eine 500 Antwort und keinen Inhalt. –

0

Möglicherweise müssen Sie zuvor die ErrorDocument-Deklaration in der Apache-Konfig-Kette hinzufügen. Wenn Sie dies zu einem vhost conf hinzufügen, kann es nicht aufgerufen werden.

2

Siehe this Antwort auf eine sehr ähnliche Frage. Grundsätzlich wird PHP kaum eine 500 auslösen.

0

Ich zufällig auf das gleiche Problem während der Arbeit mit Codeigniter und Imagick. Imagick stellte einen HTTP-Fehler von 500 ein, wenn etwas schief ging und in diesem Fall wurde die benutzerdefinierte 500-Nachricht von Codeigniter nicht angezeigt.

ich beschlossen dies durch Try-Catch auf alle Imagick functions.Check fügte hinzu, dass aus der 500 Problem, entsteht und sich dann ein Try-Catch there.As für

ErrorDocument 500 /errorpage.php?error=500 

hinzufügen, ich lese Lasten über Online Das gleiche, wo einige Leute behaupten, dass dies ihr ähnliches Problem gelöst hat, sagen andere, dass es nicht helfen würde, da Apache das Steuerelement an PHP übergeben hat. Vielleicht setzt ein PHP Code Header auf 500 und das würde wahrscheinlich dazu führen, dass der Browser seine eigenen 500 anzeigt Fehlermeldung.

Verwandte Themen