Como posso impor que minhas URLs sempre comecem com www?

17

Eu quero garantir que os usuários cheguem a www.mydomain.com , mesmo que cheguem pelo alias mydomain.com . Isso é para que eu tenha controle sobre cookies em subdomínios e para que o Google veja um único domínio e não uma miscelânea de URLs.

Como posso fazer isso com o apache?

    
por Magnar 30.04.2009 / 13:40

5 respostas

17
<VirtualHost ip:80>
   ServerName domain.com
   RedirectMatch permanent ^(.*)$ http://www.domain.com$1
</VirtualHost>

<VirtualHost ip:80>
   ServerName www.domain.com

   ... usual config
</VirtualHost>
    
por 30.04.2009 / 13:43
4

Adicione isso ao seu arquivo httpd.conf :

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]
    
por 30.04.2009 / 13:42
4

Ative o suporte a mod_rewrite e crie um arquivo .htaccess na pasta raiz do seu domínio com o seguinte conteúdo:

<IfModule mod_rewrite.c>
   Options +FollowSymLinks
   Options +Indexes
   RewriteEngine On
   RewriteBase /
   RewriteCond %{HTTP_HOST} ^domain\.com$
   RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
</IfModule>
    
por 30.04.2009 / 13:43
3

Se você realmente quiser que o Google use um estilo de domínio específico (com ou sem www ), crie um Ferramentas do Google Webmaster Tools , verifique a propriedade do seu domínio (envie um arquivo) e defina o seu domínio preferido usando o painel de controle on-line.

É simples assim, e você não precisa alterar nenhum código do lado do servidor; também os links de entrada com ou sem www serão tratados da mesma forma, aumentando o PageRank de suas páginas.

Links may point to your site using both the www and non-www versions of the URL (for instance, http://www.example.com and http://example.com). The preferred domain is the version that you want used for your site in the search results.

Once you tell us your preferred domain name, we'll take your preference into account when displaying the URLs. It may take some time before you see this change fully reflected in our index.

If you don't specify a preferred domain, we may treat the www and non-www versions of the domain as separate references to separate pages.

    
por 30.05.2009 / 08:54
1

Eu tive o problema oposto, as pessoas indo para www.domain.com quando eu quero apenas servir diretamente do domínio.com:

<VirtualHost *:80>
   ServerName domain.com

   ... usual config
</VirtualHost>

<VirtualHost *:80>
   ServerName www.domain.com
   ServerAlias sub.domain.com # can also catch some other subdomains
   ServerAlias *.domain.com # or all previously unmatched domains

   Redirect permanent / http://domain.com/
</VirtualHost>

Como Greg Hewgill mencionou, usar o Redirect é um pouco mais simples que o RedirectMatch e faz o mesmo trabalho, consulte link para mais detalhes.

    
por 13.10.2009 / 13:57