htaccess в самом корне моего сайта имеет две функции:
1. Внутреннее перенаправление всех URI в папку /site/
.(Никто не должен иметь доступ к файлам за пределами этой папки.)
2. Явное перенаправление браузера с mydomain/site/etc
на mydomain/etc
.
RewriteEngine on
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^site/(.*)$ /$1 [L,R=303]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.*)$ site/$1
Само по себе это работает нормально, нозатем, если я создаю файл /site/.htaccess
и напишу эту единственную строку внутри:
RewriteEngine On
Внезапно функция «Явное перенаправление» корневого htacces больше не работает, и я могу получить доступ к страницам сайта как черезmydomain/
и mydomain/site/
Если я попытаюсь получить доступ к mydomain/site
, а затем просмотрите журнал ошибок apache, я не вижу каких-либо перезаписей URL.
Почему?Разве root htaccess не должен запускаться первым?Почему его там игнорируют?