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, все становится на свои места, и никаких таинственных документов больше не отдается.