
Estou ficando louco aqui. O Apache está ignorando completamente os arquivos RewriteCond
e RewriteRule
. Eu esperaria que isso ocorresse com um erro, pois RewriteEngine não foi definido como On
. Eu tinha um monte de outras RewriteCond
linhas RewriteRule
que 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]