| Директива RewriteOptions
Description: | Sets some special options for the rewrite engine |
Syntax: | RewriteOptions Options |
Context: | server config, virtual host, directory, .htaccess |
Override: | FileInfo |
Status: | Extension |
Module: | mod_rewrite |
Директива RewriteOptions устанавливает некоторые специальные параметры для текущей конфигурации для каждого сервера или каталога. Строка Option в настоящее время может быть только одной из следующих :
-
Inherit
-
Это заставляет текущую конфигурацию наследовать конфигурацию родителя. В контексте виртуального сервера это означает, что карты, условия и правила основного сервера наследуются. .htaccess В контексте каталога это означает, что условия и правила конфигурации или
разделов родительского каталога
<Directory>
наследуются. Унаследованные правила виртуально копируются в раздел, где используется эта директива. При использовании в сочетании с локальными правилами унаследованные правила копируются под локальные правила. Положение этой директивы — ниже или выше локальных правил — не влияет на это поведение. Если локальные правила вынуждают остановить перезапись, унаследованные правила не будут обработаны.
Правила, унаследованные от родительской области, применяются
после правил, указанных в дочерней области.
-
InheritBefore
-
Как и Inherit выше, но правила из родительской области применяются до правил, указанных в дочерней области.
Доступно в Apache HTTP Server 2.3.10 и более поздних версиях.
-
InheritDown
-
Если этот параметр включен, все дочерние конфигурации будут наследовать конфигурацию текущей конфигурации. Это эквивалентно указанию RewriteOptions Inherit во всех дочерних конфигурациях. См. Inherit вариант для получения более подробной информации о том, как обрабатываются отношения родитель-потомок.
Доступно в Apache HTTP Server 2.4.8 и более поздних версиях.
-
InheritDownBefore
-
Как и InheritDown выше, но правила из текущей области применяются перед правилами, указанными в любой дочерней области.
Доступно в Apache HTTP Server 2.4.8 и более поздних версиях.
-
IgnoreInherit
-
Этот параметр заставляет текущую и дочернюю конфигурации игнорировать все правила, которые были бы унаследованы от родительского объекта, указывающего
InheritDown или InheritDownBefore .
Доступно в Apache HTTP Server 2.4.8 и более поздних версиях.
-
AllowNoSlash
-
По умолчанию mod_rewrite будут игнорироваться URL-адреса, которые сопоставляются с каталогом на диске, но не имеют косой черты в конце, ожидая, что модуль mod_dir выдаст клиенту перенаправление на канонический URL-адрес с косой чертой в конце.
Когда DirectorySlash директива отключена, AllowNoSlash параметр можно включить, чтобы гарантировать, что правила перезаписи больше не будут игнорироваться. Этот параметр позволяет применять правила перезаписи в файлах .htaccess, которые соответствуют каталогу без завершающей косой черты, если это необходимо.
Доступно в Apache HTTP Server 2.4.0 и более поздних версиях.
-
AllowAnyURI
-
При RewriteRule
использовании в VirtualHost контексте сервера с версией 2.2.22 или более поздней версии httpd mod_rewrite
правила перезаписи будут обрабатываться только в том случае, если URI запроса является URL-путем. Это позволяет избежать некоторых проблем с безопасностью, когда определенные правила могут допускать «неожиданное» расширение шаблона (см. CVE-2011-3368 и CVE-2011-4317). Чтобы снять ограничение на сопоставление URL-пути, этот
AllowAnyURI параметр можно включить, и он
mod_rewrite будет применять набор правил к любой строке URI запроса, независимо от того, соответствует ли эта строка грамматике URL-пути, требуемой спецификацией HTTP.
Доступно в Apache HTTP Server 2.4.3 и более поздних версиях.
Предупреждение безопасности
Включение этой опции сделает сервер уязвимым для проблем с безопасностью, если он используется с правилами перезаписи, которые не были тщательно разработаны. Настоятельно не рекомендуется использовать
этот параметр. В частности, остерегайтесь входных строк, содержащих @ символ ' ', который может изменить интерпретацию преобразованного URI в соответствии с приведенными выше именами CVE.
-
MergeBase
-
С этой опцией значение RewriteBase копируется из того места, где оно явно определено, в любой подкаталог или подкаталог, который не определяет свой собственный
RewriteBase . Это было поведение по умолчанию в версиях с 2.4.0 по 2.4.3, и флаг для его восстановления доступен в Apache HTTP Server 2.4.4 и более поздних версиях.
-
IgnoreContextInfo
-
Когда относительная замена выполняется в контексте каталога (htaccess) и RewriteBase не была установлена, этот модуль использует некоторую расширенную информацию о контексте URL и файловой системы, чтобы изменить относительную замену обратно на URL. Такие модули, как
mod_userdir и, mod_alias
предоставляют эту расширенную контекстную информацию. Доступно в версии 2.4.16 и выше.
-
LegacyPrefixDocRoot
-
До версии 2.4.26, если подстановка представляла собой абсолютный URL-адрес, соответствующий текущему виртуальному хосту, URL-адрес можно было сначала преобразовать в URL-путь, а затем — в локальный путь. Поскольку URL-адрес можно сократить до локального пути, путь должен начинаться с корня документа. Это предотвращает доступ к такому файлу, как /tmp/myfile, когда делается запрос к http://host/file/myfile со следующим
RewriteRule .
RewriteRule /file/(.*) http://localhost/tmp/$1
Этот параметр позволяет использовать старое поведение, когда корень документа не имеет префикса к локальному пути, который был сокращен из URL-адреса. Доступно в версии 2.4.26 и более поздних.
|
|