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

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

На моем сайте Apache у меня есть следующее перенаправление:

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

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

Будет ли это также работать через .htaccess каталога /web/?

решение1

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

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

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

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

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

Связанный контент