обработка ошибок — Пользовательская страница 500 для сайта PHP на IIS7.5

У меня есть сайт PHP (5.3), работающий на сервере Windows 2008 R2 (IIS7.5) & Я пытаюсь получить пользовательский показ 500 страниц.

Я установил тестовую страницу, которая генерирует фатальную ошибку — вызов неопределенной функции functiondoesnotexist () в …

Если я установлю обработку ошибок в сценарии:

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

Я вижу ошибку на странице, НО страница возвращает код 200.

Если я отключаю отчеты об ошибках, я просто получаю пустую страницу (без исходного кода вообще), но статус 500

Тем не менее, он не показывает обычную страницу ошибки (500.php) — которая работает при прямой загрузке.

Кто-нибудь знает, что мне не хватает? Спасибо

0

Решение

Чтобы пользовательский статический файл отображался как ошибка 500 на сайте PHP в IIS, после настройки пользовательской страницы через пользовательский интерфейс IIS необходимо отредактировать файл web.config и найти httpErrors раздел. В этом узле конфигурации вы должны установить existingResponse собственность на "Replace" так что fastCGI использует ответ IIS по умолчанию вместо ответа fastCGI, который использует PHP.

Ваш раздел файла web.config должен выглядеть примерно так:


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

Обратите внимание на свойство в корневом узле и responseMode атрибут установлен в File в error узел.

Файл находится в корневой папке. Если у вас есть изображения, сценарии или файлы .css, используемые в нем, убедитесь, что вы используете пути, связанные с корневой папкой (например, "/Images/MyLogo.png" так далее…).

НТН

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]