Add to Google addtomyyahoo4 Subscribe in NewsGator Online Subscribe with Bloglines Add to netvibes

Redirecionamento 301 em PHP, ASP, htaccess, Coldfusion e Ruby on Rails

31 comentários
Enviar este artigo por email Enviar este artigo por email

Muitas vezes no desenvolvimento de um website queremos mudar uma página de diretório ou até mesmo trocar o nome dela. Isto é bem simples quando se trata do nível operacional: renomeamos o arquivo ou ainda movemos de diretório simplesmente. Infelizmente não podemos pensar como no nosso computador pessoal. Não basta apenas renomear ou mover o arquivo, você deve editar todas as referências que ele recebe.

Mas como já vimos aqui no SEO Dicas, a referência na web é a base dos algoritmos de rankeamento, como o Pagerank, sendo assim, pode existir um conjunto grande de páginas que apontam(links) para este seu arquivo ou pasta, os quais não vão saber que o seu arquivo mudou. Assim como estes links, os robôs de busca não saberão que a página foi renomeada ou movida.

Desta forma, necessitamos de um método que indique que a sua página A foi renomeada ou movida para a página B. Este método é chamado de redirecionamento.

Vimos a algum tempo atrás uma explicação sobre os mais variados códigos de redirecionamento que podemos enviar ao navegador do usuário e na explicação, vimos que o código 301 indica que a sua página foi “movida permanentemente”, ou seja, ela foi renomeada ou movida para um novo local de forma definitiva.

Vejamos abaixo a aplicação do redirecionamento para as linguagens PHP, ASP, htaccess, Coldfusion e Ruby on Rails:

Redirecionamento 301 com PHP

<?
Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: http://www.meusite.com.br” );
?>

Redirecionamento 301 com ASP

<%@ Language=VBScript %>
<%
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”,”http://www.meusite.com.br/”
%>

Redirecionamento 301 com ASP .NET

<script runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(”Location”,”http://www.meusite.com.br”);
}
</script>

Redirecionamento 301 com JSP (JAVA)

<%
response.setStatus(301);
response.setHeader( “Location”, “http://www.meusite.com.br/” );
response.setHeader( “Connection”, “close” );
%>

Redirecionamento 301 com Coldfusion

<.cfheader statuscode=”301″ statustext=”Moved permanently”>
<.cfheader name=”Location” value=”http://www.meusite.com.br”>

Redirecionamento 301 com CGI(Perl)

$q = new CGI;
print $q->redirect(”http://www.meusite.com.br/”);

Redirecionamento 301 com Ruby on Rails

def old_action
headers[”Status”] = “301 Moved Permanently”
redirect_to “http://www.meusite.com.br/”
end

Redirecionamento 301 com .htaccess

redirect 301 /antigo/arquivo_antigo.htm http://www.seusite.com.br/aquivo_novo.htm

.htaccess - Redicionando um domínio antigo para um novo

Algumas vezes precisamos mudar o nosso domínio e não queremos perder nenhum link antigo, nenhum visitante que acesse o site antigo ou o principal, não perdermos Pagerank. Então, necessitamos redirecionar todos os cliques do domínio antigo para o novo.

Para redirecionar todos os arquivos e pastas do seu antigo domínio para o seu novo domínio siga corretamente a seguinte regra:

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.novosite.com.br/$1 [R=301,L]

Troque o “www.novosite.com.br” no código acima pelo novo nome do seu domínio.

O arquivo .htaccess deve ser inserido no arquivo raiz do seu antigo domínio, ou seja, onde está localizado o seu arquivo index.

Observação: Este método de redirecionamento irá apenas funcionar em servidores Apache com o módulo Mod_rewrite habilitado. Para habilitá-lo siga as instruções deste link.

Redirecionamento para inserir o WWW no início do seu domínio

A falta de uso deste código de redirecionamento implica na divisão do Pagerank do seu site, pois uma série de links pode apontar para http://seusite.com.br e outros links podem apontar para http://www.seusite.com.br. Outro problema gerado é o conteúdo duplicado, pois em ambas as URLs você consegue acessar o mesmo conteúdo.

Para prevenir estes dois problemas, você pode utilizar o código abaixo em seu arquivo .htaccess:

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^seusite.com.br [NC]
rewriterule ^(.*)$ http://www.seusite.com.br/$1 [r=301,NC]

Troque o “www.novosite.com.br” no código acima pelo novo nome do seu domínio.

O arquivo .htaccess deve ser inserido no arquivo raiz do seu antigo domínio, ou seja, onde está localizado o seu arquivo index.
Observação: Este método de redirecionamento irá apenas funcionar em servidores Apache com o módulo Mod_rewrite habilitado. Para habilitá-lo siga as instruções deste link.

Verificação do seu redirecionamento

A fase mais importante do redirecionamento é o teste do mesmo. Mas como fazer isto?

Existem várias ferramentas na web que podem lhe devolver o código de redirecionamento, mas eu sugiro a ferramenta Redirect Check, que faz uma análise bem simples e objetiva do seu redirecionamento. Não esqueçam de testar!

Espero que tenham gostado desta dica de SEO sobre o redirecionamento 301 e não esqueçam de comentar!

Adicionar artigo ao Rec6 Adicionar artigo ao Linkk Adicionar artigo ao doMelhor Adicionar artigo ao Eu Curti Adicionar artigo ao del.icio.us

Otimização de Sites e Links Patrocinados

Procurando uma empresa séria, experiente e com conhecimento em Otimização de Sites ou Links Patrocinados?
Entre em contato e solicite um orçamento.

31 Respostas à este post

Assine este os comentários deste artigo RSS de comentário ou TrackBack URL
  1. Micox Says:

    Muito bom. Vou precisar disso logo logo.

  2. Fábio Ricotta Says:

    Opa! Qualquer dúvida na hora de implementar é só enviar que nós ajudamos! Abraços!

  3. Frank Marcel Says:

    Ae Fábio! Beleza de post hein!? Que tal chamar de guia definitivo para redirecionamento?

    Mandou bem mesmo!

  4. Leandro Says:

    Na minha opinião a melhor opção de redirecionamento é a .htaccess sendo que em alguns servidores é necessário colocar os códigos dentro e para funcionar.

    Ficaria então assim:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.*) http://www.novosite.com.br/1 [R=301,L]

    Abraços

  5. Vinicius Says:

    Cara vocês sabem alguma forma de redimencionar que mantem o endereço na barra de endereços ?

  6. Fábio Ricotta Says:

    Vinicius, eu sei por .htaccess… seria algo assim:

    RewriteRule ^paginadoendereco.htm$ http://www.seusite.com.br/paginanoservidor.htm

  7. Códigos de Redirecionamento | SEO Dicas Says:

    […] redirecionar suas páginas, utilize o nosso post de redirecionamento 301 que mostra o redirecionamento em PHP, ASP, htaccess, Coldfusion e Ruby on Rails. Artigos […]

  8. Rodrigo Says:

    Estou mudando o meu site de endereço e não funcionou o uso do código abaixo.

    Options +FollowSymlinks
    RewriteEngine on
    rewritecond %{http_host} ^seusite.com.br [NC]
    rewriterule ^(.*)$ http://www.seusite.com.br/1 [r=301,NC]

    O que precisamente devo fazer para funcionar?
    Obrigado.
    Rodrigo

  9. Fábio Ricotta Says:

    Olá Rodrigo,

    Você está substituindo a palavra “seusite.com.br” pelo endereço do seu site?

  10. Designer gráfico Demétrios Martins Says:

    Bom dica, já utilizei ela em um de meus trabalhos.

  11. Fábio Ricotta Says:

    Fico feliz de ter ajudado!

  12. Rafael Says:

    Eu estou tentando redirecionar a página pra abrir numa pasta interna:
    http://www.meusite.com para http://www.meusite.com/blog usando
    Redirect permanent /meusite.com http://www.meusite.com/blog/
    mais nao to tendo resultado…ou ele mantem na pasta original ou da erro 500

    sabe o que pode ser de errado?

  13. Frank Marcel Says:

    Rafael, que linguagem você está usando?

  14. Redirecionando domínios com o .htaccess, e ainda redirecionamento permanente via HTTP 301 Says:

    […] e pastas do domínio (primeira parte dessa dica) há tempos, hoje encontrei por acaso no site Seo Dicas - inspiração para este texto. » Gostou do texto? Veja também…EeA Responde #1: Windows lento, […]

  15. Designer Gráfico Demétrios Martins Says:

    Tenho uma dúvida: Quero fazer um redirect de uma página HTM para uma página em PHP de um mesmo domínio sem o uso de javascript justamente para não perder pagerank nem considerar como black hat. Como faço isso?
    exemplo:
    http://www.meusite.com.br/files/pagina_antiga.htm
    para:
    http://www.meusite.com.br/pagina_antiga_com_novo_nome.php

    DICA: abaixo dos posts deveria ter uma campo “deseja acompanhar os comentários deste post via email”

    Assim a gente não esquece de acessar o post futuramente.

  16. Conteúdo Duplicado - E agora? | SEO Dicas Says:

    […] conteúdo texto, quando identificado o problema, deve-se fazer o redirecionamento 301 para a melhor versão de tal […]

  17. Frank Marcel Says:

    Demétrio, a resposta para sua pergunta está no próprio post.
    Confira o item:
    “Redirecionamento 301 com .htaccess”

    Basta colocar o .php em arquivo_novo:
    “http://www.seusite.com.br/aquivo_novo.php”

    Entendeu?

  18. Antonio Says:

    Olá Fábio,

    Como faço esse direcionamento em um site hospedado no Geocities?

    Obrigado,
    Antonio.

  19. Jura® Says:

    olá fabio tenho um domínio apontando para um blog do blogger gratuito o lucrenainternet.com que acabou de ser premiado com pagerank 4 em apenas 4 meses de existencia graças a algumas dicas que achei por aí na internet e em seu blog também….
    Mas quero mudar para um servidor pago e mudar também a plataforma para wordpress ou joomla…
    O que vc indica para que eu não seja penalizado nao pagerank….
    adgradeço dese já a atenção e as dicas do seu blog.

  20. Fábio Ricotta Says:

    Você deve utilizar os conceitos que mostrei neste artigo. Você deve redirecionar tudo com 301. Beleza?

  21. Como Fazer um Site Facilmente Indexável | SEO Dicas Says:

    […] é importante, mais ainda que ele seja original. Caso a página já exista em um site antigo, faça um redirecionamento permanente. Verifique se realmente não há conteúdo duplicado. Agora nos resta aplicar as técnicas de SEO para […]

  22. Leandro Feijó Says:

    Qual a principal diferença para quem usa redirecionamento 302 ou 301 em termos de SEO?

  23. Fábio Ricotta Says:

    Olá Leandro,

    A diferença é que o código 302 indica que a página foi movida temporariamente, ou seja, o buscador não indexa a nova página, ou pode deixá-la em um tipo de “index secundário”. Existe outro ponto que ele não passa o Pagerank de uma página para a outra, achando que é apenas um “redirecionamento temporário”.

    Consegui sanar sua dúvida?

    Abraços

  24. Antonio Says:

    Então PHP não funciona no Geocities gratuíto. Alguém sabe alguma solução para aplicar o redirecionamento 301 no Geocities/Yahho!?

    Obrigado.

  25. Dabuek Ferrari Says:

    Ai Fabio, grande post, mas to perdido com um codigo, preciso direcionar um antigo website para meu novo endereço, o problema e que estao em provedores diferentes com diferentes linguagens e ainda pra piorar, quero deixar um aviso de redirecionamento automatico no antigo url e tambem que a barra de rolagem seje atualizada automaticamente, sem pane sem erro.
    tambem não quero usar ferramentas externas de redirecionamento, quero fazer dentro do proprio codigo. manda,.

    ta uma força ai, valew bro.

  26. Gláucio Burle Says:

    Olá Fábio!
    Em primeiro lugar um agradecimento pelo conteúdo, muito útil e dinâmico. Parabéns!

    A minha dúvida é, tenho um wordpress.com (www.mixcarioca.wordpress.com) e vou migrar para um dentro de uma hospedagem paga (www.mixcarioca.com) porém, o google já indexou várias páginas do anterior. Já passei todos os antigos posts para o novo em uma área de teste e minha dúvida é: Como fazer para os links já indexados apontem para o novo? Não tenho acesso a nenhuma configuração no wordpress.com por isso, não acho possível utilizar estas informações deste post.
    Ou, tenho que fazer o método gambiarra, informar nos posts antigos o novo site?

  27. Luiz Carlos Says:

    Olá

    Utiliei as dicas aqui apresentadas, funcionou mas surgiu uma dúvida.

    Antes quando eu digitava “www.meusite.com” o resultado era “meusite.com”. Alterei o .htaccess passando a ficar “www.meusite.com/”

    Viram? no final apareceu uma “/”

    Eu cadastrei meu site nos mecanismos de busca sem a barra no final. Isso poderá ser interpretado pelo google, por exemplo, como sendo duas páginas com mesmo conteúdo? Ou seja, corrigi um problema mas surgiu outro?

    Desde já agradeço a ajuda.

  28. Conceitos Básicos de SEO | Mestre SEO Says:

    […] desconfiados quanto a isso. Existem alguns códigos de redirecionamento mas o mais indicado é o redirecionamento 301, redirecionamento permanente, isto é, os search engines redirecionaram todos os links direcionados […]

  29. Sabe como mudar de dominio sem perder trafego e backlinks? | Fique Rico Online Says:

    […] http://www.marketingdebusca.com.br/redirecionar-paginas-301-redirect/ > http://www.mestreseo.com.br/blog/seo/redirecionamento-301-em-php-asp-htaccess-coldfusion-e-ruby-on-r... > […]

  30. Leandro Feijó Says:

    Alguém sabe como se dá o redirecionamento num servidor Tomcat?

  31. Fábio Ricotta Says:

    Olá Leandro,

    Eu pesquisei rapidamente aqui e encontrei este fórum:
    http://www.mail-archive.com/users@tomcat.apache.org/msg44002.html

    Lá eles sugerem de você editar direto no http.conf pois o usuário que mandou a dúvida está usando apache tomcat. Como está a sua configuração aí?

Deixe um Comentário

Nota: A moderação de comentários pode estar ativa, então não há necessidade de re-enviar o seu comentário.