Apache. Документация на русском


Разделы:   1    2    3    4    5    6    7    8    9      10      11    12    13    14    15    16  

Раздел 10. Модули Апача

Пункты:   85    86    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134      135      136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

 <         > 
  RU            EN  

Пункт 135. Модуль Apache mod_dir

Индекс каталога может поступать из одного из двух источников:

  • Файл, написанный пользователем, обычно называемый index.html . Директива DirectoryIndex устанавливает имя этого файла. Это контролируется mod_dir .
  • В противном случае листинг генерируется сервером. Это обеспечивается mod_autoindex .

Эти две функции разделены, так что вы можете полностью удалить (или заменить) автоматическое создание индекса, если захотите.

Перенаправление «конечная косая черта» выдается, когда сервер получает запрос на URL-адрес, http://servername/foo/dirname где dirname находится каталог. Для каталогов требуется завершающая косая черта, поэтому mod_dir выполняется перенаправление на http://servername/foo/dirname/ .



Директива DirectoryCheckHandler

Описание:Переключить, как этот модуль отвечает, когда настроен другой обработчик
Синтаксис: DirectoryCheckHandler On|Off
По умолчанию: DirectoryCheckHandler Off
Контекст:конфигурация сервера, виртуальный хост, каталог, .htaccess
Переопределить:Индексы
Положение дел:База
Модуль:mod_dir
Совместимость:Доступно в версии 2.4.8 и более поздних. Выпуски до 2.4 неявно действуют так, как если бы было указано «DirectoryCheckHandler ON».

Директива DirectoryCheckHandler определяет, следует ли mod_dir проверять индексы каталогов или добавлять конечные косые черты, когда для текущего URL-адреса настроен какой-либо другой обработчик. Обработчики могут быть установлены директивами, такими как SetHandler или другими модулями, например, mod_rewrite во время подстановок для каждого каталога.

В версиях до 2.4 этот модуль не предпринимал никаких действий, если для URL-адреса был настроен какой-либо другой обработчик. Это позволяет обслуживать индексы каталогов, даже если SetHandler директива указана для всего каталога, но это также может привести к некоторым конфликтам с такими модулями, как mod_rewrite .



Директива DirectoryIndex

Описание:Список ресурсов для поиска, когда клиент запрашивает каталог
Синтаксис: DirectoryIndex disabled | local-url [local-url] ...
По умолчанию: DirectoryIndex index.html
Контекст:конфигурация сервера, виртуальный хост, каталог, .htaccess
Переопределить:Индексы
Положение дел:База
Модуль:mod_dir

Директива DirectoryIndex устанавливает список ресурсов для поиска, когда клиент запрашивает индекс каталога, указав / в конце имени каталога. Local-url — это (%-encoded) URL-адрес документа на сервере относительно запрошенного каталога; обычно это имя файла в каталоге. Можно указать несколько URL-адресов, и в этом случае сервер вернет первый найденный. Если ни один из ресурсов не существует и Indexes параметр установлен, сервер создаст свой собственный список каталогов.

Пример

 DirectoryIndex index.html 

тогда запрос http://example.com/docs/ будет возвращен, http://example.com/docs/index.html если он существует, или будет указан каталог, если он не существует.

Обратите внимание, что документы не обязательно должны относиться к каталогу;

 DirectoryIndex index.html index.txt /cgi-bin/index.pl 

приведет /cgi-bin/index.pl к выполнению сценария CGI, если ни один из index.html них не index.txt существует в каталоге.

Единственный аргумент «отключено» предотвращает mod_dir поиск индекса. Аргумент «отключено» будет интерпретироваться буквально, если перед ним или после него есть какие-либо аргументы, даже если они также «отключены».

Примечание. Несколько DirectoryIndex директив в одном контексте будут добавляться в список ресурсов для поиска, а не замены:

 # Пример A: Установите index.html в качестве индексной страницы, а затем добавьте index.php в этот список.
<Каталог "/foo">
 DirectoryIndex index.html
 DirectoryIndex index.php
</Каталог>
# Пример B: идентичен примеру A, за исключением того, что он выполняется с помощью одной директивы.
<Каталог "/foo">
 DirectoryIndex index.html index.php
</Каталог>
# Пример C: Чтобы заменить список, вы должны сначала явно сбросить его:
# В этом примере в качестве ресурса индекса останется только index.php.
<Каталог "/foo">
 DirectoryIndex index.html
 DirectoryIndex отключен
 DirectoryIndex index.php
</Каталог> 


Директива DirectoryIndexRedirect

Описание:Настраивает внешнее перенаправление для индексов каталогов.
Синтаксис: DirectoryIndexRedirect on | off | permanent | temp | seeother | 3xx-code
По умолчанию: DirectoryIndexRedirect off
Контекст:конфигурация сервера, виртуальный хост, каталог, .htaccess
Переопределить:Индексы
Положение дел:База
Модуль:mod_dir
Совместимость:Доступно в версии 2.3.14 и выше

По умолчанию DirectoryIndex выбирается и прозрачно возвращается клиенту. DirectoryIndexRedirect вместо этого вызывает внешнее перенаправление.

Аргумент может быть:

  • on : выдает перенаправление 302 на индексный ресурс.
  • off : не выдает перенаправление. Это устаревшее поведение mod_dir.
  • permanent : выдает 301 (постоянное) перенаправление на индексный ресурс.
  • temp : это имеет тот же эффект, что и on
  • seeother : выдает перенаправление 303 (также известное как «Просмотреть другое») на индексный ресурс.
  • 3xx-код : выполняет перенаправление, отмеченное выбранным кодом 3xx.

Пример

 DirectoryIndexRedirect на 

Запрос http://example.com/docs/ вернет временное перенаправление на, http://example.com/docs/index.html если оно существует.



Директива DirectorySlash

Описание:Включить или выключить переадресацию косой черты в конце
Синтаксис: DirectorySlash On|Off
По умолчанию: DirectorySlash On
Контекст:конфигурация сервера, виртуальный хост, каталог, .htaccess
Переопределить:Индексы
Положение дел:База
Модуль:mod_dir

Директива DirectorySlash определяет, mod_dir следует ли исправлять URL-адреса, указывающие на каталог, или нет.

Обычно, если пользователь запрашивает ресурс без косой черты в конце, которая указывает на каталог, mod_dir он перенаправляет его на тот же ресурс, но с косой чертой в конце по некоторым веским причинам:

  • Пользователь, наконец, запрашивает канонический URL-адрес ресурса.
  • mod_autoindex работает правильно. Поскольку он не выдает путь в ссылке, он укажет на неправильный путь.
  • DirectoryIndex будет оцениваться только для каталогов, запрошенных с завершающей косой чертой.
  • Относительные URL-ссылки внутри html-страниц будут работать правильно.

Если вы не хотите этого эффекта и причины, указанные выше, к вам не относятся, вы можете отключить перенаправление, как показано ниже. Однако имейте в виду, что это может иметь последствия для безопасности.

 # см. предупреждение о безопасности ниже!
<Расположение "/некоторые/путь">
 Слэш-каталог выключен
 SetHandler какой-то обработчик
</местоположение> 

Предупреждение безопасности

Отключение переадресации косой черты в конце может привести к раскрытию информации. Рассмотрим ситуацию, когда mod_autoindex активно ( Options +Indexes ) и DirectoryIndex установлено допустимый ресурс (скажем, index.html ), и для этого URL-адреса не определен другой специальный обработчик. В этом случае запрос с косой чертой в конце покажет файл index.html . Но запрос без завершающей косой черты будет отображать содержимое каталога .

Также обратите внимание, что некоторые браузеры могут ошибочно изменять POST-запросы на GET (таким образом, отбрасывая POST-данные) при выполнении перенаправления.



Директива FallbackResource

Описание:Определите URL-адрес по умолчанию для запросов, которые не сопоставляются с файлом
Синтаксис: FallbackResource disabled | local-url
По умолчанию: disabled - httpd will return 404 (Not Found)
Контекст:конфигурация сервера, виртуальный хост, каталог, .htaccess
Переопределить:Индексы
Положение дел:База
Модуль:mod_dir
Совместимость:Аргумент disabled доступен в версии 2.4.4 и выше.

Используйте это, чтобы установить обработчик для любого URL-адреса, который не соответствует чему-либо в вашей файловой системе и в противном случае вернул бы HTTP 404 (не найдено). Например

 Резервный ресурс /not-404.php 

приведет к тому, что запросы на несуществующие файлы будут обрабатываться not-404.php , в то время как запросы на существующие файлы останутся без изменений.

Часто желательно, чтобы один файл или ресурс обрабатывал все запросы к определенному каталогу, за исключением тех запросов, которые соответствуют существующему файлу или сценарию. Его часто называют «передним контроллером».

В более ранних версиях httpd этот эффект обычно требовал mod_rewrite , а также использование -f и -d проверки существования файлов и каталогов. Теперь для этого требуется только одна строка конфигурации.

 Резервный ресурс /index.php 

Существующие файлы, такие как изображения, файлы css и т. д., будут обслуживаться в обычном режиме.

Используйте disabled аргумент, чтобы отключить эту функцию, если наследование от родительского каталога нежелательно.

В суб-URI, таком как http://example.com/blog/, этот суб-URI должен быть указан как local-url :

 <Каталог "/web/example.com/htdocs/blog">
 Резервный ресурс /blog/index.php
</Каталог>
<Каталог "/web/example.com/htdocs/blog/images">
 Резервный ресурс отключен
</Каталог> 


 <         > 

Пункты:   85    86    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134      135      136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

Рейтинг@Mail.ru