Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
AllowOverride список_категорий_или_All_или_None
Поэтому прежде чем писать свой .htaccess, осведомитесь у администратора сервера, какие категории настроек вам доступны.
Существует всего пять категорий:
n AuthConfig – директивы, отвечающие за организацию авторизованного доступа;
n FileInfo – директивы, управляющие обработкой ошибок и отвечающие за информацию о языках и кодировках и прочее;
n Indexes – команды, отвечающие за доступ к директориям, то есть за те случаи, когда файл в адресе не указан;
n Limit – команды, позволяющие ограничить доступ к ресурсу, например, закрыть или открыть доступ для клиентов, имеющих определённые IP-адреса;
n Options – всего две инструкции Options и XBitHack; первая регламентирует работу механизмов CGI, SSI и автоматического составления листинга директорий; вторая управляет реакцией SSI-процессора на атрибут файла «исполняемый» и используется весьма редко.
Перейдём теперь к приёмам обработки адреса. Естественно, чтобы передать скрипту информацию через адрес, мы должны иметь возможность вызвать один и тот же скрипт, используя разные адреса. Когда это происходит?
Директива DirectoryIndex
Начнём наш экскурс с самой простой возможности, о которой знают практически все. Директива DirectoryIndex принадлежит к категории Indexes и служит для определения файлов, выступающих в роли традиционного index.html.
Если .htaccess, расположенный в некоторой директории, содержит инструкцию:
DirectoryIndex index.html /cgi-bin/index.cgi
то при обращении к этой директории (без указания файла) сервер действует по следующему алгоритму: сперва он будет искать файл index.html, если таковой существует, то будет выдан клиенту, в противном случае, сервер выдаст результат выполнения сценария /cgi-bin/index.cgi. Если и последний не существует, то клиент получит сообщение об ошибке 404.
Если разместить такой .htaccess сразу в двух директориях /one/и /two/, то и по адресу /one/, и по адресу /two/клиент получит результат работы /cgi-bin/index.cgi (естественно, если соответствующий index.html не найден). Мы вызываем один и тот же скрипт по разным адресам. Для получения такого эффекта может быть достаточно и одного подобного .htaccess. В нашем случае и для директории /one/first/, и /one/second/в отсутствии index.html будет вызван /cgi-bin/index.cgi.
Для нас существенно то, что сценарий /cgi-bin/index.cgi, кроме обычных переменных окружения, получит две дополнительные: REDIRECT_URL и REDIRECT_STATUS. Первая будет содержать запрошенный адрес без имени сервера. Вторая – статус (обычно 200). То есть сценарий может «определить», для какой директории он вызван, и совершить адекватные действия. Например, для одних директорий (скажем, с html-документами) он может составлять индекс, придавая ему должный вид и включая в него только определённые файлы, а для других директорий (допустим, с графикой) он будет перенаправлять пользователя на первую страницу или выдавать сообщение об ошибке.