Redirecionamento Permanente / Redirecionamento 301 em Servidor Apache

Ruy Miranda
Otimização de Sites


O dono ou gerenciador de web site pode ter vários motivos para fazer redirecionamento permanente de uma ou várias páginas. Duas situações bastante comuns são a mudança no nome do domínio e alterações significativas na página. Em geral isto é uma tarefa simples, que não causa erros. Basta acessar o servidor onde se encontra hospedado o site e colocar diretamente nele ou em um arquivo próprio, a instrução para o redirecionamento.

Se, durante a leitura deste artigo, o assunto lhe parecer muto complicado, visite outra página em que dou uma Visão Geral do Redirecionamento Permanente.

Redirecionamento em Servidores Apache

Nesta página vou tratar do redirecionamento feito em servidores Apache.

Quando o site está numa hospedagem compartilhada, como ocorre com a maioria, as instruções são colocadas em um arquivo tipo txt chamado arquivo .htaccess. A instrução é do tipo que se segue.

Redirect 301 pasta-qualquer/arquivo.html http://www.meu-dominio.com.br/novo arquivo.html
Ou então:
RedirectPermanent pasta-qualquer/arquivo.html http://www.meu-dominio.com.br/novo-arquivo.html

O código 301 significa que o arquivo contido na pasta (que chamei de 'pasta qualquer') do meu-dominio.com.br foi mudado permanentemente, e está agora contido no novo-arquivo do meu-dominio.com.br. Quando a página 'arquivo.html' é solicitada ao servidor, este apresenta o novo-dominio.html. O rank que era do arquivo.html que se achava na 'pasta-qualquer' é transferido para o novo-arquivo.html.

Entretanto, em certos casos isso pode ser uma tarefa complexa e até mesmo conhecida de poucos (relativamente) otimizadores de sites. Isso para não falar de grande debate em andamento sobre a melhor maneira de se fazer certos redirecionamentos e, no presente, sobre as reclamações dirigidas ao Google sobre o assunto, e os critérios que este mecanismo de busca aplica para operar o seu novo centro de dados Bigdaddy.

Para se fazer o redirecionamento permanente via arquivo .htaccess é necessário ter algum conhecimento desta modalidade de arquivo e, para se fazer o redirecionamento dentro do servidor (sem arquivo .htaccess), é preciso ter conhecimentos mais avançados de gerenciamento do servidor. Nos exemplos citados a seguir, pressupõe-se tais conhecimentos por parte do leitor.

No exemplo citado acima, em que o documento contido em arquivo.html é transferido para novo-arquivo.html dentro do mesmo site, a instrução pode ser usada tanto no arquivo .htaccess como diretamente no servidor.

Redirecionamentos do mesmo conteúdo em URLs diferentes – Vamos considerar as seguintes URLs:

meu-dominio.com.br
www.meu-dominio.com.br/

Esta duas URLs são tecnicamente diferentes. Se não foi feito redirecionamento, o servidor vai oferecer o mesmo conteúdo como se fossem duas páginas diferentes. Faça um teste em sites da internet: nas homes, retire o http://www. na área de endereços e dê 'enter'. Você verá se fica apenas o nome do domínio na área de endereço, se a URL muda imediatamente para http://www., se o conteúdo apresentado é o mesmo.

Se você estiver com a barra do Google instalada, poderá ver com mais facilidade o que o servidor está respondendo. Você verá que em alguns casos o rank cai a zero quando o endereço fica em meu-dominio.com.br (sem www), mas o conteúdo permanece o mesmo da página com www. Isto significa que o mecanismo de busca poderá interpretar que essas duas páginas apresentam conteúdo semelhante e as URLs são diferentes. Isto trata-se de um erro técnico. É preciso redirigir meu-dominio.com.br para www.meu-dominio.com.br/. (Colocar ou não esta barra no final, é assunto para outra oportunidade, mas, de antemão, aconselho a colocar.)

Como fazer este redirecionamento?

Em primeiro lugar, se a hospedagem é compartilhada, precisamos saber do suporte da hospedagem se podemos usar arquivo .htaccess ou se o próprio suporte faz o redirecionamento, ou ainda, se o uso desse arquivo está liberado automaticamente.

Em segundo lugar, precisamos nos certificar de que o nome do domínio no servidor (ServerName) é www.meu-dominio.com.br (sem barra no final). Vamos considerar um servidor da família Unix.

Em terceiro lugar, vamos colocar a seguinte instrução no arquivo .htaccess:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^meu-dominio\.com
RewriteRule ^(.*)$ http://www.meu-dominio.com/$1 [R=permanent,L]


ou esta outra:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^meu-dominio\.com$ [NC]
RewriteRule ^(.*)$ http://www.meu-dominio.com/$1 [R=301,L]

No caso de redirecionamento direto no servidor, faço da seguinte maneira:

<VirtualHost número-do-ip-aqui>
DocumentRoot /www/virtualhosts/www.meu-dominio.com
ServerName www.meu-dominio.com
</VirtualHost>

Em seguida coloco a diretriz, como se fosse outro domínio:

<VirtualHost número-do-ip-aqui>
DocumentRoot /www/virtualhosts/www.meu-dominio.com
ServerName meu-dominio.com
RedirectPermanent / http://www.meu-dominio.com
</VirtualHost>

Observe que coloco dois nomes diferentes no servidor, um sem www, e outro com www.

Quando se faz um redirecionamento desses pode-se observar alguma oscilação no ranking do Google, o qual se estabiliza em no máximo 8 semanas.

Março/2006

Proprietário    Nota Legal     Política    Blog    Contato
Copyright © 2005-2014, Otimização de Sites Todos os direitos reservados