- • Код возврата -состояния
- • Обработка сообщений об ошибках
- • Модуль mod_rewrite - URL преобр.
- • Директива модуля - RewriteBase
- • Директива модуля - RewriteCond
- • Директива модуля - RewriteEngine
- • Директива модуля - RewriteOptions
- • Директива модуля - RewriteRule flags
- • Примеры URL преобразований
- • Боты - роботы через Mod rewrite
- • Защита от прямого скачивания
Presently online : 22
Создание собственных страниц ошибок с помощью . htaccess (ошибка 404, 403, 401, 500)
При возникновении ошибки 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
Как вы видите все довольно просто.


