
Me estoy volviendo loco aquí. Apache está ignorando por completo tanto el RewriteCond
como RewriteRule
. Esperaría que esto produjera un error ya que RewriteEngine no se ha configurado en On
. Tenía muchas otras RewriteCond
líneas RewriteRule
que funcionaban bien y cuando verifiqué el registro de reescritura (que había habilitado) mostró que se habían omitido estas dos. Recorté todo lo demás para verificar que nada de eso estuviera causando el problema y, efectivamente, Apache felizmente no presenta ningún error con esta configuración:
DocumentRoot /var/sites/public
<Directory /var/sites/public>
AllowOverride None
SetEnv APPLICATION_ENV production
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://www.example.com/$1 [L,R]
Order allow,deny
allow from all
</Directory>
Estoy bastante seguro de que hay algún error evidente aquí al que me he cegado al mirarlo durante demasiado tiempo. Cualquier ayuda sería apreciada.
Notas: No tengo esto en un Vhost. No hay ningún Vhost en la configuración. Eliminé RewriteCond y todavía no arroja ningún error. También probé esto con RewriteEngine On.
Respuesta1
Con solo echarle un vistazo rápido, me dice que RewriteCond no coincidirá con nada excepto lo que parece ser nada. No estoy seguro de cómo se siente mod_rewrite al respecto.
¿Qué estás tratando de hacer exactamente con la regla?
Por ejemplo, si desea que coincida con cualquier dominio excepto (www.)ejemplo.com y reenviarlo a www.ejemplo.com, entonces tendría una regla como:
RewriteCond %{HTTP_HOST} !^(www.)?example\.com$
RewriteRule (.*) http://www.example.com/$1 [R,L]
Respuesta2
Quieres esto también:
RewriteCond %{HTTP_HOST} .
...o escrito de otra manera:
RewriteCond %{HTTP_HOST}!=""
Entonces:
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^(www.)?example\.com$
RewriteRule (.*) http://www.example.com/$1 [R,L]