Apache ignorando RewriteCond e RewriteRule

Apache ignorando RewriteCond e RewriteRule

Estou ficando louco aqui. O Apache está ignorando completamente os arquivos RewriteConde RewriteRule. Eu esperaria que isso ocorresse com um erro, pois RewriteEngine não foi definido como On. Eu tinha um monte de outras RewriteCondlinhas RewriteRuleque estavam funcionando bem e quando verifiquei o log de reescrita (habilitei), ele mostrou que essas duas estavam sendo ignoradas. Cortei todo o resto para verificar se nada disso estava causando o problema e, com certeza, o Apache não apresentou nenhum erro com esta configuração:

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>

Tenho certeza de que há algum erro flagrante aqui, para o qual me ceguei ao ficar olhando para ele por muito tempo. Qualquer ajuda seria apreciada.

Notas: Não tenho isso em um Vhost. Não há nenhum Vhosts na configuração. Removi o RewriteCond e ele ainda não gera nenhum erro. Eu tentei isso com RewriteEngine On também.

Responder1

Basta dar uma olhada rápida para me dizer que o RewriteCond não corresponderá a nada, exceto o que parece ser nada. Não tenho certeza de como mod_rewrite se sente sobre isso.

O que exatamente você está tentando fazer com a regra?

Por exemplo, se você quiser que ele corresponda a qualquer domínio, exceto (www.)example.com, e encaminhe-o para www.example.com, você terá uma regra como:

RewriteCond %{HTTP_HOST} !^(www.)?example\.com$
RewriteRule (.*) http://www.example.com/$1 [R,L]

Responder2

Você também quer isso:

RewriteCond %{HTTP_HOST} .

...ou escrito de uma maneira diferente:

RewriteCond %{HTTP_HOST}!=""

Então:

RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^(www.)?example\.com$
RewriteRule (.*) http://www.example.com/$1 [R,L]

informação relacionada