2017-02-08 8 views
0

Ich habe eine PHP (5.3) -Website auf einem Windows 2008 R2-Server (IIS7.5) & Ich versuche, eine benutzerdefinierte 500-Seite anzuzeigen.Benutzerdefiniert 500 Seite für PHP-Site auf IIS7.5

ich Setup eine Testseite habe, die einen fatalen Fehler erzeugt - Call to undefined function functiondoesnotexist() in ...

Wenn ich Fehler im Skript Handhabung auf:

ini_set('display_errors', 1); 
error_reporting(E_ALL);) 

Ich bekomme den Fehler auf der Seite zu sehen, aber die Seite gibt einen 200 Code zurück.

Wenn ich die Fehlerberichterstattung deaktivieren, bekomme ich nur eine leere Seite (keinen Quellcode überhaupt), aber der Status ist 500

Aber es zeigt nicht die custome Fehlerseite (500.php) - das funktioniert, wenn es direkt geladen wird.

Weiß jemand, was ich vermisse? Danke

Antwort

0

Um eine benutzerdefinierte statische Datei als 500-Fehler in einer PHP-Site unter IIS anzuzeigen, müssen Sie nach dem Konfigurieren der benutzerdefinierten Seite über die IIS-Benutzeroberfläche die Datei web.config bearbeiten und den Abschnitt httpErrors suchen. In diesem Konfigurationsknoten müssen Sie die Eigenschaft existingResponse auf "Replace" setzen, damit fastCGI anstelle der von PHP verwendeten fastCGI-Antwort die standardmäßige IIS-Antwort verwendet.

Ihr web.config Abschnitt sollte wie folgt aussehen:

<httpErrors existingResponse="Replace"> <remove statusCode="500" subStatusCode="-1" /> <error statusCode="500" prefixLanguageFilePath="" path="MyCustom500Errorpage.html" responseMode="File" /> </httpErrors>

Beachten Sie die Eigenschaft in dem Wurzelknoten und das responseMode-File im error Knoten gesetzt Attribut.

Die Datei befindet sich im Stammordner. Stellen Sie sicher, dass Sie Pfade verwenden, die sich auf den Stammordner beziehen (z. B. "/Images/MyLogo.png" usw.), wenn Sie Bilder, Skripts oder CSS-Dateien verwenden.

HTH

Verwandte Themen