Большинство директив могут задаваться не только в конфигурационных файлах сервера, но и в файлах .htaccess в каталогах сервера. Директива AllowOverride перечисляет опции, которые могут быть переопределены в файлах .htaccess.
Эта директива, используемая только в файле httpd.conf, регулирует отношения между глобальным файлом доступа и пользовательскими файлами .htaccess. В директиве указываются разделенные пробелами опции управления доступом, переопределение которых в файле .htaccess, находящемся в дереве каталогов ниже этого каталога, разрешено.
Пример - рассматриваемая часть файла httpd.conf:
Цитата:
<Directory "/">
Options Indexes FollowSymLinks Includes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Параметры у AllowOverride могут быть указаны следующие:
- None. Сервер игнорирует – не читает файлы .htaccess в этом каталоге. Если вы не намерены использовать для каталога файлы .htaccess, вам следует явно установить эту опцию, поскольку это повысит производительность сервера.
- Аll. По умолчанию пользователи имеют право переопределять в файлах .htaccess все глобальные установки доступа, для которых в этих файлах имеются эквивалентные команды.
- Filelnfo. Разрешает использование в файлах .htaccess директив, управляющих типами документа (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, и т.д..) Как правило, данная опция разрешена на большинстве веб-серверов.
- AuthConfig. Разрешает использование директив разрешения (AuthGroupFile, AuthName, AuthType, AuthUserFile, require..), необходимых для защиты каталогов паролями, т.е. разрешает установку авторизации по имени пользователя и паролю. Данная опция так же разрешена на большинстве серверов.
- Limit. Допускает использование основных директив управления доступом (allow, deny и order), директив секционирования Limit, т.е. например ограничивают доступ к файлам в зависимости от адреса клиентского компьютера.
- Options. Разрешает использование директивы Options.
Директива Options позволяет управлять тем, какие функции сервера доступны для использования в каталоге, указанном в секции <Directory> файла access.conf или в файле .htaccess.
Сразу заострим внимание на понятиях Directory и Location. Различие между секциями Directory и Location состоит в том, что первая относится к каталогам на диске, вторая - к виртуальному пути (URL), который браузер запрашивает у Web-сервера. И в той, и в другой могут присутствовать директивы order, allow и deny, которые позволяют ограничить доступ к каталогу или URL с различных машин.
В директиве Options можно использовать следующие параметры:
- None. В указанном каталоге не разрешается использование каких-либо функций.
- All В указанном каталоге разрешается использование всех возможностей (принимается по умолчанию), т.е. установить сразу все опции - режимы кроме MultiViews.
- MultiViews - разрешить поддержку многих языков; по умолчанию она отключена, и включать ее, как правило, не нужно;
- FollowSymLinks. Сервер следует символьным ссылкам, имеющимся в указанном каталоге, т.е. - разрешить переходы по символическим ссылкам;
- ExecCGI. В указанном каталоге разрешается выполнение сценариев CGI.
- Includes. В указанном каталоге разрешено использование серверных включений - SSI (Server Side Includes). Использование серверных включений требует, чтобы сервер производил синтаксический разбор всех HTML-файлов перед отправкой их клиентам. Нечего и говорить, что это крайне нагружает сервер, поэтому мы бы порекомендовали отключить эту опцию. Если вам необходимы серверные включения, разрешите их на уровне отдельных файлов при помощи директивы AddType.
- Indexes - допускает использование деректив управления индексацией каталога(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, и т.д..), например разрешает выдачу листинга каталога , если в нем нет файла index.html (или файла индекса, заданного директивой DirectoryIndex );
- IncludesNoExec. Эта директива разрешает использование в указанном каталоге серверных включений, но запрещает запуск из них внешних программ.