Активирует ли перенаправление .htaccess в другую папку второй .htaccess внутри?

На моем сайте apache у меня есть следующий редирект:

RewriteCond %{REQUEST_URI} !^/web/
RewriteRule ^(.*)$ /web/$1

, который перенаправляет из корневого каталога в каталог "Web".

Будет ли это также выполняться через .htaccess / web / каталог тоже?

1
задан 13 December 2020 в 19:52
1 ответ

Да, это так. (Предполагая, что переопределения .htaccess не были отключены для подкаталога.)

RewriteCond %{REQUEST_URI} !^/web/
Правило перезаписи ^(.*)$ /web/$1

На самом деле, если файл .htaccess в подкаталоге содержит директивы mod_rewrite, то вам не нужна директива RewriteCond, так как директивы mod_rewrite в подкаталоге переопределяют директивы. в родительском (по умолчанию) и, таким образом, предотвратить цикл перезаписи.

Обратите внимание, что в опубликованной вами директиве отсутствует флаг L, поэтому обработка сначала продолжится до остальной части текущего файла .htaccess.

Незначительное замечание: это строго «переписывание», а не «перенаправление». Хотя документы Apache относятся к «внутренним перенаправлениям». «Перенаправление» чаще используется для обозначения внешних перенаправлений 3xx.

1
ответ дан 13 December 2020 в 17:00

Теги

Похожие вопросы