Estamos migrando de un subdominio a otro. Este dominio en particular tiene un subconjunto de varios sitios web. Configuré la siguiente reescritura para manejar la redirección globalmente:
En docroot/.htaccess
("Regla #1")
RewriteEngine On
RewriteCond %{HTTP_HOST} ^virtual\.example\.com$
RewriteRule ^(.*)$ http://events.example.com/$1 [L,R=301]
Generalmente funciona, excepto en algunos sitios que tienen sus propias reglas de reescritura. Por ejemplo, /roadshow/2015/
tiene la siguiente regla general:
En docroot/roadshow/2015/.htaccess
("Regla #2")
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.php$
RewriteRule .* framework/main.php?url=%1&%{QUERY_STRING} [L]
El problema:Las páginas siguientes /roadshow/2015/
continúan cargándose como si la regla n.° 1 no existiera.
¿Que me estoy perdiendo aqui? :)
Respuesta1
Las directivas mod_rewrite en archivos .htaccess en subcarpetas prevalecerán sobre las de las carpetas principales; intente usarlas RewriteOptions Inherit
en el archivo .htaccess de cada subcarpeta (consultehttp://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriteoptions).
Si está ejecutando Apache 2.4.8 o superior, puede usar RewriteOptions InheritDown para aplicar automáticamente a todos los archivos .htaccess secundarios en lugar de tener que modificar cada uno.