Создание собственных страниц ошибок с помощью . htaccess

Ответить
Woin
Сообщения: 436
Зарегистрирован: 28.12.2009
При возникновении ошибки 4XX. или 5XX. посетитель Вашего сайта увидит в браузере сообщение от сервера, которое вряд ли можно назвать предельно понятным рядовому пользователю. Apache предоставляет возможность выдать вместо аскетичного технического текста, не изобилующего деталями, свою страницу, где Вы можете человеческим языком объяснить пользователю, что произошло и что делать.

Рассмотрим примеры. Допустим, пользователь обратился к документу, которого не существует на сервере.

Такое может произойти по разным причинам: где-то осталась ссылка на уже удаленный Вами документ, кто-то дал пользователю неправильную ссылку или пользователь допустил ошибку, когда набирал адрес страницы в браузере. В этом случае сервер выдаст ошибку 404 (Not Found) и текст вида "The requested URL такой - то was not found on this server".

Можно выдать вместо этой строчки документ в дизайне Вашего сервера, в котором написать что-то типа "Произошла ошибка - запрошенный документ не найден. Попробуйте уточнить адрес, воспользоваться поисковой системой или начать просмотр сайта с первой страницы". Такое сообщение пользователь поймет гораздо лучше. Более того, пожалуй, выдача дружественных, понятных любому посетителю сообщений является хорошим тоном.

Итак, создаем документ, который будем показывать пользователю в случае возникновения ошибки 404.

Итак в файле ". htaccess " дописываем сверху следующие строки например:

Код: Выделить всё

# содержание файла .htaccess: 

ErrorDocument 404 http://htaccess.net.ru/error/404.htm 
ErrorDocument 403 http://htaccess.net.ru/error/403.htm 
ErrorDocument 400 http://htaccess.net.ru/error/400.htm 
ErrorDocument 500 http://htaccess.net.ru/error/500.htm 

# следующие директивы файла .htaccess оставлены для общего примера

Options + Includes 
AddType text/html .shtml 
AddHandler server-parsed .shtml 
order allow,deny 
deny from all
Теперь при возникновении ошибки 404 пользователь увидит именно Ваш файл. Еще можно скриптом или с помощью SSI вставить в выдаваемый документ какую-нибудь служебную информацию, которую пользователь должен будет привести, если решит обратиться за комментариями к Вам по e-mail. Таким образом можно обработать практически все негативные коды возврата. Конечно, можно обработать и позитивные коды, но смысл этого не до конца ясен, равно как непонятно в какой ситуации это может пригодиться.

Приведем еще несколько возможных вариантов использования данной директивы для создания собственных ответов на ошибочные ответы веб сервера Apache ErrorDocument веб мастером в .htaccess:

Код: Выделить всё

# в случае ошибки "SERVER ERROR" показывается страница с другого ресурса:
ErrorDocument 500 http://htaccess.net.ru/cgi-bin/500.pl

# в случае ошибки "NOT FOUND" показывается страница с того же веб-сайта:
ErrorDocument 404 /cgi-bin/error404.pl

# в случае ошибки "FORBIDDEN" показывается текстовое сообщение, которое
# обязательно должно начинаться с кавычки, кавычка в сообщении не выводится:
ErrorDocument 403 "Sorry can't allow you access today, 403 Status Codes Apache
Источник http://www.htaccess.net.ru/doc/ErrorDoc ... ument2.php (внешка)

Ответить