Назад | Перейти на главную страницу

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

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

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

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

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

В 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 не существует.

Что мне здесь не хватает? :)

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

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