Собственные страницы ошибок

В случае проблемы или ошибки, Apache может быть конфигурирован так, чтобы выполнить одно из четырех действий:

  • выдать клиенту простое жестко закодированное сообщение об ошибках;
  • выдать настроенное сообщение;
  • перенаправить(redirect) запрос локальному URL, чтобы обработать проблему/ошибку;
  • перенаправить(redirect) запрос внешнему URL, чтобы обработать проблему/ошибку.

Первое действие выполняется по умолчанию, в то время как действия 2-4 должны быть сконфигурированы директивой ErrorDocument, которая сопровождается HTTP-кодом_ответа и сообщением или URL.

Сообщения в этом контексте начинаются с одиночной кавычки ("), которая не включается в сообщение непосредственно. Apache будет иногда предлагать дополнительную информацию относительно проблемы/ошибки.

URLs может начинаться с наклонной черты вправо (/) для локального URLs, или быть полным URL, который поможет пользователю решить проблему.

Все данные диррективы прописываются в файле .htaccess

.htaccess (от. англ. hypertext access) — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла.

Синтаксис:

ErrorDocument код-ошибки документ

Пример:

ErrorDocument 500 http://foo.example.com/cgi-bin/tester
ErrorDocument 404 /cgi-bin/bad_urls.pl
ErrorDocument 401 /subscription_info.html
ErrorDocument 403 "Извините, сегодня доступ Вам закрыт

Обратите внимание, что, когда Вы определяете ErrorDocument, который указывает на удаленный URL (то есть что-нибудь с методом типа "http" в начале) Apache пошлет переназначающий ответ пользователю, чтобы сообщить ему, где найти нужный документ, даже если документ находиться на том же самом сервере. За этим следуют некоторые особенности, наиболее важной является та, что если Вы используете директиву "ErrorDocument 401", то она должна ссылаться на локальный документ. Это обусловлено характером HTTP базисной опознавательной схемы.