Pergunta

Por várias razões, como cookies, SEO e, para simplificar as coisas, gostaria de fazer o Apache redirecionar automaticamente quaisquer solicitações para http://www.foobar.com/anything para http://foobar.com/anything. O melhor que eu poderia criar é uma monstruosidade baseada em Mod_rewrite, existe uma maneira fácil de dizer "redirecionar todos os pedidos de domínio ABC para XYZ"?

PS: Eu encontrei Esta pergunta um tanto relacionada, mas é para o IIS e faz o oposto do que eu quero. Também ainda é complexo.

Foi útil?

Solução

É tão fácil quanto:

<VirtualHost 10.0.0.1:80>
        ServerName www.example.com
        Redirect permanent / http://example.com/
</VirtualHost>

Adapte nomes de host e IPS conforme necessário :)

Outras dicas

Mais simples e fácil de copiar de site para site:

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

Muito simples se você usar mod_rewrite, como todos nós;)

Isso faz parte do .htaccess do meu site ao vivo:

RewriteEngine on

# Catches www.infinite-labs.net and redirects to the
# same page on infinite-labs.net to normalize things.

RewriteCond %{HTTP_HOST} ^www\.infinite-labs\.net$
RewriteRule ^(.*)$ http://infinite-labs.net/$1 [R=301,L]

Use um arquivo .htaccess com algumas regras mod_rewrite:

RewriteEngine On
RewriteRule ^www.SERVERNAME(.*) http://SERVERNAME$1 [L,QSA]

Não tenho certeza se acertei a sintaxe com o $1 Lá, mas está bem documentado. L envia um local: cabeçalho para o navegador e QSA significa que a string de consulta Anexe.

Como você mencionou o uso de mod_rewrite, eu sugeriria uma regra simples em seu .htaccess - não me parece monstruoso :)

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

Isso deve fazer o truque.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top