Настройка сервера Apache

Опубликовано 2012.04.07

Options директива

Синтаксис: Options [+|-]option [+|-]option ...
Контекст: конфигурация сервера, virtual host, directory, .htaccess
Отмена: Options
Состояние: основное

Директива Options опредиляет, какие особенности сервера являются доступными в данном каталоге.

option может быть установлена в None, когда ни одна из опций не допускается и возможно одно или несколько следующих полей:

  • All - все опции кроме MultiViews.
  • ExecCGI - разрешается выполнение сценариев CGI.
  • FollowSymLinks - сервер будет следовать за символическими связями в этом каталоге.
  • Includes - Server-site includes(SSI), разрешаются.
  • IncludesNOEXEC - Server-site includes(SSI), разрешается, но команда #exec и #include CGI-скриптов заблокированны.
  • Indexes - если запрошенный URL соответствует каталогу, и в этом катлоге нет ничего соответствующего DirectoryIndex (например Index.html), то сервер возвратит форматированную распечатку содерщания каталога.
  • MultiViews - Content negotiated MultiViews допускаются.
  • SymLinksIfOwnerMatch - сервер будет следовать только тем символическим связям, для которых целевой файл или каталог имеют тот же идентификатор пользователя что и связь.

Обычно, если несколько опций директивы Options применяются к каталогу, а затем наиболее специфический применяются к его подкаталогу, то опции не обьединяются. Однако, если любой опции в директиве Options предшествует символ "+" или "-", то опции обьединяются. Любые опции, которым предшествует "+" будут добавлены к опциям включенным в настоящее время, и любые опции, которым предшествует "-" будут удалены из включенных опций.

Например, без любого + и - символа:

<Directory /web/docs>
Options Indexes FollowSymLinks
</Directory>
<Directory /web/docs/spec>
Options Includes
</Directory>

только опция Includes, будет установлен для каталога /web/docs/spec. Однако, если вторая Options директива использует + и - символы:

<Directory /web/docs>
Options Indexes FollowSymLinks
</Directory>
<Directory /web/docs/spec>
Options +Includes -Indexes
</Directory>

то опции FollowSymLinks и Includes будут установлены для каталога /web/docs/spec.


Фактически при включении опции MultiViews в настройках виртуального хоста (или же .htaccess) при запросе несуществующего файла без расширения Apache просматривает директорию на наличие файла, соответвующего маске file_name.* и отдает первый найденный файл. Причем все заголовки (Content-Type, Content-Length) формируются автоматически, согласно реальному расширению файлы. Вот такие дела. Кстати, вместе с заголовками отдается заголовок: Vary: negotiate,accept,Accept-Encoding.
Когда мы убираем параметр MultiViews и перезапускаем демон apache, все становится на свои места, и никаких таинственных документов больше не отдается.