Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Алексей Мичурин
Согласитесь, что адрес http://site.ru/news/page2.html намного удобнее, чем http://site.ru/cgi-bin/news/view.cgi?page=2. Первый из них гораздо легче запомнить, записать, продиктовать по телефону. В этой статье я хотел бы рассмотреть наиболее доступные приёмы перенаправления http-запросов, делая упор на способы их обработки.
Знакомство с проблемой
Когда обсуждается некая обработка запроса, конечно, подразумевается, что на сервере есть какие-то активные элементы (программы, сценарии...), способные обработать запрос и обеспечить определённую «реакцию». Программы обычно получают необходимую информацию либо со стандартного потока ввода (при запросе POST), либо из строки запроса, содержащейся в адресе справа от вопросительного знака (при запросе GET). Эти механизмы передачи данных прекрасно известны, документированы, поддержаны в неисчислимом множестве модулей и библиотек, и я не буду касаться их в настоящей статье. Я как раз хотел бы обсудить другие возможности, позволяющие передать информацию на сервер. То есть мы будем запускать сценарии, формировать веб-страницы динамически, но не будем включать в адрес ни знака вопроса, ни строку запроса. Метод POST мы тоже использовать не будем.
Как же в таком случае передать скрипту информацию? Ответ прост: через адрес. То есть мы рассмотрим приёмы, позволяющие вызвать один и тот же скрипт, используя разные адреса; а также обсудим, как скрипт может получить информацию о том, по какому адресу он был вызван на этот раз. Обсудим, какие дополнительные возможности обеспечивает такой способ управления скриптами.
Я буду ориентироваться не на администраторов серверов, полномочия которых практически безграничны, а на гораздо более многочисленную армию веб-мастеров, которые обычно пользуются готовым хостингом и имеют ограниченный доступ к настройкам сервера. В этой статье мы рассмотрим только те возможности, которые могут быть настроены в файле .htaccess. Конечно, все описываемые приёмы доступны и администраторам.
Материал расположен в порядке от простого и широко известного к более сложному. Читатели, частично знакомые с вопросом, могут пропустить первые разделы, практически ничего не теряя.
Несколько слов о файле .htaccess
Файл .htaccess – это просто текстовый файл, который размещается в одной директории с веб-документами или сценариями. То есть для его редактирования вполне достаточно полномочий, позволяющих управлять содержимым сервера, коими обладают все владельцы виртуальных серверов. В нём хранятся конфигурационные директивы для сервера. Действие этих директив распространяется на все файлы, принадлежащие директории, в которой расположен .htaccess. Оно распространяется и на файлы всех вложенных директорий, хотя вложенные директории могут, в свою очередь, тоже содержать файлы .htaccess, которые переопределят настройки, данные в родительских директориях.
Вообще говоря, использование имени .htaccess совсем не обязательно. Ваш сервер может быть настроен на использование другого имени вместо .htaccess. Настройка производится инструкцией:
AccessFileName имя_файла
Но я никогда не видел, чтобы администраторы серверов злоупотребляли этой возможностью и отступали от традиций.
Какие настройки можно производить в .htaccess? Ответ зависит от нравов администратора. Все конфигурационные инструкции Apache, допустимые в .htaccess, поделены на категории. Администратор обычно даёт пользователю только часть полномочий, разрешая ему изменять настройки, принадлежащие только к определённым категориям. Настройка этих ограничений производится инструкцией: