301 .htaccess Redirect

Há relativamente pouco tempo, o maior fórum português de informática, mudou o domínio de techzonept.com para zwame.pt.

Nestas circunstâncias, é necessário resolver o problema de redireccionar os:

  • Utilizadores do fórum, do domínio antigo para o novo. Era necessário que quem acedesse a techzonept.com fosse redireccionado para zwame.pt. E ainda, por exemplo, quem tivesse feito bookmark do url duma thread, e acedesse à mesma, fosse redireccionado para o novo url dessa thread. Ou quem encontrasse o fórum nos resultados da pesquisa dos motores de busca, com as páginas do domínio antigo ainda indexadas, fosse também redireccionado para a página correspondente do domínio novo.
  • Motores de busca. Imagina todas as páginas indexadas no Google, que representavam milhares de visitas todos os meses, mas que apontavam para o domínio antigo. Era necessário que o Google indexasse as novas páginas do domínio novo. Ou imagina todos os links que também apontavam para o domínio antigo e cujo valor em termos de SEO era muito valioso. Era necessário transferir esse valor SEO do velho url para o novo url.

Há muitas outras circunstâncias onde é necessário proceder a este tipo de redireccionamento. Imagina que o teu site está programado em ASP e, por N razões, decides mudar o site para um script open source em PHP. Também tens aqui um exemplo onde é necessário redireccionar os visitantes dos url antigos para os url novos.

Algumas pessoas utilizam o Meta refresh, para redireccionar utilizadores dum url para outro. O problema aqui é que o spider dos motores de busca recebe um status code 200. E indexa as 2 páginas. O que poderá causar problemas de duplicação de conteúdo, com as penalizações consequentes. Também não é transferido o valor SEO dos links que apontam para o url antigo para o novo url.

A solução é um 301 redirect. O que é o status code 301?

Quando visitas um site, é estabelecida uma ligação TCP/IP entre o teu computador e o servidor onde está alojado o site e inicia-se uma conversa, através do protocolo HTTP, entre o teu browser e o servidor web. O teu browser pede os ficheiros da página a que estás a aceder. E o servidor web responde a esses pedidos. Estas respostas tem um Status Code. Quando o pedido é satisfeito com sucesso, o status code é 200. No caso do status code 301, o servidor informa que a informação pedida foi movida permanentemente para outro url e indica qual é esse novo url.

No caso dum motor de busca, essa conversa é efectuada entre o spider desse motor de busca e o servidor web. E a spider também recebe o status code 200 e 301, quando aplicável. Quando recebe o status code 301, fica a saber que o url mudou permanentemente para outro url e fica também a saber qual é o novo url.

Como é que se faz um 301 redirect?

Apresentamos algumas soluções:

.htaccess Redirect

Vou partir do pressuposto que utilizas um servidor Linux para o alojamento do teu site, com o servidor Web Apache. Verifica se tens um ficheiro .htaccess na pasta pública do teu alojamento. Abre no Notepad, caso não tenhas, cria um ficheiro .htaccess utilizando o Notepad com o código que segue.

Para redireccionares uma página para outra:

RedirectPermanent /pagina-antiga.html http://www.oteulindodominio.com/pagina-nova.html

ou

Redirect 301 /pagina-antiga.html http://www.oteulindodominio.com/pagina-nova.html

Para redireccionares um domínio para outro:

RedirectPermanent / http://www.htaccess301.com/

ou

Redirect 301 / http://www.htaccess301.com/

Implementamos neste domínio este 301 .htaccess redirect. Se tentares aceder a htacess301.org, vais ser redireccionado para htaccess301.com

ou


RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?htaccess301.net [NC]
RewriteRule ^(.*)$ http://htaccess301.com/$1 [R=301,L]

Implementamos neste domínio este 301 .htaccess redirect. Se tentares aceder a htacess301.net, vais ser redireccionado para htaccess301.com

Já que estamos com a mão na massa, para redireccionares a página sem o www para a página com o www, para evitar duplicação de conteúdo:


Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^oteudominio.com [NC]
RewriteRule ^(.*)$ http://www.oteudominio.com/$1 [R=301,NE,L]

Implementamos neste domínio este 301 .htaccess redirect. Se tentares aceder a htacess301.com, vais ser redireccionado para a versão www. htaccess301.com.

Be Sociable, Share!

1 Comentários

Participa! Comenta...