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 Inherit
no 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.