
На моем сайте 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 перенаправления.