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