Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Для полноты картины осталось только сказать о переменной REDIRECT_QUERY_STRING: она практически эквивалентна QUERY_STRING (о которой мы договорились не упоминать в этой статье). Если в директории /paper сервера paper.ru в файле .htaccess находится инструкция:
DirectoryIndex /cgi-bin/index.cgi
то при запросе адреса http://paper.ru/paper?string=data или http://paper.ru/paper/?string=data, как вы уже догадались, будет вызван сценарий /cgi-bin/index.cgi, но наряду с переменной QUERY_STRING ему будет передана ещё и REDIRECT_QUERY_STRING. Обе они будут равны строке запроса, в нашем примере string=data. Разница между этими переменными состоит только в том, что когда строка запроса отсутствует, переменная QUERY_STRING существует, но равна пустой строке, а REDIRECT_QUERY_STRING не существует вовсе.
Обработка ошибок. Директива ErrorDocument
Директива ErrorDocument принадлежит к категории FileInfo и предназначена для определения файлов, выдаваемых клиенту, если обработка запроса вызвала ошибку.
Если добавить в .htaccess инструкцию:
ErrorDocument 404 /cgi-bin/error.cgi
то при возникновении ошибки 404 будет выполнен сценарий /cgi-bin/error.cgi. Ему будут переданы четыре дополнительные переменные:
n REDIRECT_REQUEST_METHOD – метод, которым был выполнен ошибочный запрос;
n REDIRECT_STATUS – статус, его удобно использовать в обработчиках, предназначенных для ошибок разного типа, очевидно, в нашем случае статус может равняться только 404;
n REDIRECT_URL – адрес несуществующего ресурса без имени сервера, этот адрес, например, можно использовать для регистрации в журнале;
n REDIRECT_ERROR_NOTES – сообщение об ошибке.
Кроме того, при наличии строки запроса создаётся переменная REDIRECT_QUERY_STRING, описанная выше.
Эти переменные удобно использовать не только в CGI-сценариях, но в SSI-документах. Так, если создать .htaccess с директивой:
ErrorDocument 404 /error/404.shtml
а в файле /error/404.shtml разместить следующий SSI-код:
<html>
<head><title>404</title></head>
<body>
<h1>Файл не найден!</h1>
Файл <b><!--#echo var="REDIRECT_URL" --></b> был запрошен