Разрешить родительскому .htaccess перенаправлять все активы

Разрешить родительскому .htaccess перенаправлять все активы

Мы мигрируем с одного поддомена на другой. Этот конкретный домен имеет подмножество из нескольких веб-сайтов. Я настроил следующую переписывание для обработки перенаправления глобально:

В docroot/.htaccess(«Правило №1»)

RewriteEngine On
RewriteCond %{HTTP_HOST} ^virtual\.example\.com$
RewriteRule ^(.*)$ http://events.example.com/$1 [L,R=301]

В целом это работает, за исключением нескольких сайтов, у которых есть свои правила перезаписи. Например, /roadshow/2015/есть следующее правило catch-all:

В docroot/roadshow/2015/.htaccess(«Правило №2»)

RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.php$
RewriteRule .* framework/main.php?url=%1&%{QUERY_STRING} [L]

Проблема:Страницы /roadshow/2015/продолжают загружаться, как будто Правила №1 не существует.

Что я тут упускаю? :)

решение1

Директивы mod_rewrite в файлах .htaccess во вложенных папках будут иметь больший приоритет, чем директивы в родительских папках — попробуйте использовать их RewriteOptions Inheritв файле .htaccess каждой вложенной папки (см.http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriteoptions).

Если вы используете Apache 2.4.8 или выше, вы можете использовать RewriteOptions InheritDown для автоматического применения ко всем дочерним файлам .htaccess вместо того, чтобы изменять каждый из них.

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