Свои страницы ошибок (403, 404 и др.)

Свои страницы ошибок (403, 404 и др.)


Создание собственных страниц ошибок веб-сервера Apache:

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

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

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

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

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

Синтаксис в файле .htaccess:

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

Пример:

 ErrorDocument 500 http://example.com/500.php 
 ErrorDocument 404 /404.html 
 ErrorDocument 401 /errors/subscription_info.html 
 ErrorDocument 403 "Извините, доступ закрыт 

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

Подведем итог:

1. Создаем файл .htaccess в корне Вашего сайта, если его нет.

2. В самом верху вставить код:

 ErrorDocument 400 /index.php 
 ErrorDocument 401 /index.php 
 ErrorDocument 403 /index.php 
 ErrorDocument 404 /index.php 
 ErrorDocument 500 /index.php 
 ErrorDocument 503 /index.php 

3. Изменить /index.php на то, что Вам ближе по душе, исходя из выше приведенных примеров.


Возврат к списку