Permitir que o pai .htaccess redirecione todos os ativos

Permitir que o pai .htaccess redirecione todos os ativos

Estamos migrando de um subdomínio para outro. Este domínio específico possui um subconjunto de vários sites. Configurei a seguinte reescrita para lidar com o redirecionamento globalmente:

Em docroot/.htaccess("Regra nº 1")

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

Geralmente funciona, exceto alguns sites que possuem suas próprias regras de reescrita. Por exemplo, /roadshow/2015/tem a seguinte regra geral:

Em docroot/roadshow/2015/.htaccess("Regra nº 2")

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

O problema:As páginas abaixo /roadshow/2015/continuam a carregar como se a Regra nº 1 não existisse.

O que estou perdendo aqui? :)

Responder1

As diretivas mod_rewrite em arquivos .htaccess em subpastas superarão as das pastas pai - tente usar RewriteOptions Inheritno arquivo .htaccess de cada subpasta (consultehttp://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriteoptions).

Se você estiver executando o Apache 2.4.8 ou superior, poderá usar RewriteOptions InheritDown para aplicar automaticamente a todos os arquivos .htaccess filhos, em vez de precisar modificar cada um deles.

informação relacionada