Директивы перенаправления
Перечислим основные директивы перенаправления:
? Alias и AliasMatch позволяют предоставить доступ не только к файлам, находящимся в каталоге, указанном в директиве DocumentRoot, но и к другим каталогам сервера. В директиве AliasMatch можно использовать регулярные выражения:
AliasMatch ^/manual(?:/(?:de|en|es|ru))?(/.*)?$ "C:/Apache2
/manual$1"
? ScriptAlias и ScriptAliasMatch задают местоположение каталога для
CGI-сценариев:
ScriptAlias /cgi-bin/ "C:/Apache2/cgi-bin/"
Директива ScriptAliasMatch позволяет использовать регулярные выра-
жения;
? Redirect и RedirectMatch сообщают, что искомый документ больше не находится в данном месте, и указывают, где можно его найти. Директива RedirectMatch позволяет использовать регулярные выражения. Директи- вы Redirect и RedirectMatch имеют дополнительный параметр, указы- вающий состояние переадресации. Параметр может принимать следую- щие значения:
• permanent — ресурс перемещен навсегда (код 301);
• temp — ресурс перемещен временно (код 302);
• seeother — ресурс был заменен другим ресурсом (код 303);
• gone — ресурс удален навсегда (код 410).
Например:
Redirect permanent /file1.html /file2.html
RedirectMatch 301 ^/manual(?:/(de|en|es|ru)){2,}(/.*)?$
/manual/$1$2
4.4.8. Обработка ошибок
С помощью директивы ErrorDocument можно указать документ, который бу-
дет выдан Web-браузеру в случае возникновения указанной ошибки:
ErrorDocument 404 /err/error404.html
Обычно указываются директивы (и разрабатываются соответствующие до-
кументы) для следующих ошибок:
? 401 — пользователь неавторизован;
? 403 — нет доступа. При отсутствии индексного файла в каталоге и от- ключенной опции Indexes директивы Options генерируется именно эта ошибка;
? 404 — ресурс не найден.
4.4.9. Настройки MIME-типов
При передаче файла сервер указывает MIME-тип документа. Это позволяет Web-браузеру правильно обработать получаемый файл. MIME-тип указыва- ется в формате:
<Категория>/<Тип файла>
Например:
? text/html — для HTML-документов;
? image/gif — для изображений в формате GIF;
? application/msword — для документов в формате Word.
Конфигурации MIME-типов находятся в файле mime.types (C:\Apache2\conf\ mime.types). Для настройки MIME-типов и смежных вопросов используются следующие директивы:
? AddEncoding устанавливает взаимосвязь между определенной кодировкой и расширением файла:
AddEncoding pkzip .zip
? RemoveEncoding удаляет взаимосвязь между определенной кодировкой и расширением файла:
RemoveEncoding .zip
? TypesConfig указывает расположение конфигурационного файла с на-
стройками MIME-типов:
TypesConfig conf/mime.types
? DefaultType устанавливает MIME-тип по умолчанию: если запрашивае- мый клиентом файл не соответствует ни одному из MIME-типов, то ис- пользуется MIME-тип, указанный в этой директиве:
DefaultType text/plain
? AddType позволяет добавить новый MIME-тип и связать его с определен-
ным расширением:
AddType application/x-httpd-php .php
? RemoveType удаляет связи между MIME-типами и расширениями:
RemoveType .cgi
? ForceType указывает MIME-тип для набора файлов. Присваивает файлам, указанным в разделе <Directory> или <Files>, определенный MIME-тип, не принимая во внимание расширения файлов;
? AddHandler используется для связывания определенного обработчика с файловым расширением:
AddHandler type-map .var
? SetHandler обеспечивает обработку файлов в разделах <Directory> или
<Files> с помощью определенного обработчика:
<Files *.html> SetHandler type-map
</Files>
? RemoveHandler отменяет связывание определенного обработчика с фай-
ловым расширением:
AddHandler server-parsed .html
RemoveHandler .html
В директивах AddHandler и SetHandler могут быть указаны следующие обработчики:
• default-handler — обработчик по умолчанию, который использует- ся для обслуживания HTML-документов, файлов изображений (то есть файлов, не требующих предварительной обработки);
• send-as-is — посылает файл, содержащий в себе HTTP-заголовки, как есть (без добавления пакетных или HTTP-заголовков). Заголовки можно указывать в самом файле, отделяя их от основного содержи- мого пустой строкой;
• cgi-script — обрабатывает файл как CGI-скрипт;
• imap-file — обрабатывает файл как карту-изображение;
• server-parsed — исполняет SSI-директивы в файле;
• server-info — возвращает конфигурационную информацию сервера.
Необходимо, чтобы был подключен модуль mod_info.so:
<Location /info> SetHandler server-info
</Location>
• server-status — возвращает отчет о состоянии сервера. Необходи-
мо, чтобы был подключен модуль mod_status.so:
<Location /status> SetHandler server-status
</Location>
• type-map — обрабатывает файл как файл сопоставления типов:
AddHandler type-map .var
В этом примере все файлы с расширением var будут использоваться как файлы сопоставления типов. Пример файла сопоставления типов:
URI: index.html.en
Content-Language: en
Content-type: text/html; charset=ISO-8859-1
URI: index.html.ru.koi8-r
Content-Language: ru
Content-type: text/html; charset=KOI8-R
? Action устанавливает соответствие между заданным названием обработ- чика или MIME-типа с определенной программой, обеспечивающей ме- ханизм исполнения. Данная директива позволяет создавать собственные обработчики:
Action image/gif /cgi-bin/images.cgi
Action my-file-type /cgi-bin/program.cgi
AddHandler my-file-type .xyz
? CacheNegotiatedDocs задает режим кэширования сервером результатов переговоров: если директива имеет значение on, то документы, установ- ленные в результате переговоров между сервером и Web-браузером о со- гласовании MIME-типа, языка и способа кодирования, могут быть поме- щены в кэш:
CacheNegotiatedDocs on
По умолчанию директива имеет значение off.
Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)