Apache ignorando RewriteCond y RewriteRule

Apache ignorando RewriteCond y RewriteRule

Me estoy volviendo loco aquí. Apache está ignorando por completo tanto el RewriteCondcomo RewriteRule. Esperaría que esto produjera un error ya que RewriteEngine no se ha configurado en On. Tenía muchas otras RewriteCondlíneas RewriteRuleque 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]

información relacionada