Esta semana tive que alterar uns URL's num pequeno blog que tenho e ao mesmo tempo tinha que redireccionar os visitantes e os motores de busca para os novos endereços. Depois de alguma pesquisa, encontrei alguns códigos que também pode vir a precisar.

Como redireccionar através do .htaccess

Ora bem, para que servem estes códigos?

Estes códigos servem para redireccionar visitantes e os robots dos motores de pesquisa para novos URL's. Imagine que você tem um artigo já indexado mas acha que se altera-se o link receberia mais visitas. Se depois de alterar o link não fizer o redireccionamento, as visitas que ainda vêm do Google, Bing, de outros sites que linkaram o artigo, vão parar a página de erro 404.

Uma das maneiras mais fáceis de fazer o redireccionamento, é através do ficheiro .htaccess que está no seu alojamento.

Mas onde está esse .htaccess?

O ficheiro .htaccess está dentro da pasta public_html. Você deve de abri-lo, colocar o código no fim desse ficheiro e volta-lo a colocar dentro da pasta public_html.

Se por ventura não conseguir encontrar o ficheiro, pode aceder via FTP ao alojamento, procurar o ficheiro dentro da pasta public_html, transferi-lo para o seu computador, abri-lo com um editor (bloco de notas, notepad++, etc), colar os códigos no fim do ficheiro e transferi-lo novamente para o alojamento.

Se tiver dúvidas ou problemas, deixe um comentário para que eu possa ajuda-lo.

(Nota: Apenas em servidores com Linux. Se utiliza o WordPress.com ou Blogger, não consegue redireccionar desta maneira.)

Os códigos são os seguintes:

Para fazer um redireccionamento 301 (permanente) quando você muda de domínio, mas mantém os mesmos posts:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^antigoendereco.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.antigoendereco.com$
RewriteRule (.*)$ http://www.novoendereco.com/$1 [R=301,L]

Para fazer um redireccionamento 301 (permanente) de todos os visitantes para outro site:

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

Para redireccionar do index.html (ou index.php no caso do wordpress por exemplo):

Redirect /index.php http://www.seusite.com/nova-pagina/

Para redireccionar permanentemente uma página ou ficheiro:

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

Para mostrar / ocultar o www.:

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

Nota1: Se utiliza wordpress, vá ao menu Opções e altere o endereço do site (coloque ou retire o www.)

Nota2: Altere o segundo link do código, colocando ou retirando o www.

Espero que este artigo vos seja útil!