Pergunta

Se eu for para http://www.example.com Eu quero que fique lá, o que está funcionando bem.
Se eu for para http://bar.example.com Ele redireciona para http://www..com, o que está errado
EU querer para ir para http://www.example.com dada a referência de back RewriteCond

RewriteEngine On

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

Ubuntu 8.04
Pacote: Apache2-MPM-Preformar
Arquitetura: i386
Versão: 2.2.8-1

Foi útil?

Solução

Os padrões negados não correspondem e, portanto, você não pode fazer referência a um grupo dessa correspondência inexistente.

Mas tente esta regra: em vez disso:

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

Outras dicas

Sua condição não corresponde a Bar.mysite.com:

RewriteCond %{HTTP_HOST}   !^www.(mysite).com [NC]

Você precisa alterá -lo para corresponder para que a referência de backreference funcionasse:

RewriteCond %{HTTP_HOST}   !^[^\.]+\.(mysite)\.com [NC]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top