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

Índice do Conteúdo

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 na Agência Mestre, 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 %>
<%
‘ Permanent redirection
Response.Status = “301 Moved Permanently”
Response.AddHeader “Location”, “http://www.meusite.com.br/”
Response.End
%>

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 – Redirecionando 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 nossa ferramenta HTTP Header Checker, 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!

Divulgue este artigo

132 Comentários para “Redirecionamento 301 em PHP, ASP, htaccess, Coldfusion e Ruby on Rails”

    • andre luiz

      cara você me ajudo demais já estava perdendo meu pagerank por causa desse problemas mais graças a tu foi resolvido valeu amigo abraços

  1. Frank Marcel

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

    Mandou bem mesmo!

  2. Leandro

    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

  3. Vinicius

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

  4. Rodrigo

    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

  5. Designer Gráfico Demétrios Martins

    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.

  6. Frank Marcel

    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?

    • Eudis Lohner

      Olá Frank.

      Fiz esta pergunta a voce lah no uaiseo mas por aqui seria melhor.

      O que acontece que meu site http://www.remol.com.br … quando busco qualquer palavra chave dele por exemplo (CADEIRA)…. ele me mostra os Aspx que existiam anteriormente de outra agencia de desinvolvimento…

      Mudamos para PHP… e ainda aparece… fiz o redirecionamento 301 ontem e ainda aparece… o que preciso fazer para que apareça minhas páginas.PHP ???

      desde já agradeço

  7. Antonio

    Olá Fábio,

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

    Obrigado,
    Antonio.

  8. Jura®

    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.

  9. Fábio Ricotta

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

  10. Leandro Feijó

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

  11. Fábio Ricotta

    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

  12. Antonio

    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.

  13. Dabuek Ferrari

    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.

  14. Gláucio Burle

    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?

  15. Luiz Carlos

    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.

  16. Leandro Feijó

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

  17. Renan

    Tenho uma dúvida.
    possuo um blog no Blogger e vou mudar pra WordPress, acontece q tenho PR3 com o Blogger e não queria perder esse pagerank. Como utilizo a versão antiga do Blogger, é praticamente todo em HTML puro o layout (somente os códigos dos posts q nao). Vc sabe um código que eu possa redirecionar esse blog para o endereço novo sem perder o PageRank?
    Vi aqui esses códigos, mas acho que não funcionam no Blogger, já que o Blogger não é em PHP, nem em ASP, nem em Ruby e esses outros.
    Pesquisando eu encontrei esse código:

    mas não sei se o PageRank é mantido com ele. Poderia me informar?

    Desde já agradeço a atenção,

    Renan Duarte

  18. Web Designer Demétrios

    Dúvida 1:
    Ao fazer um redirect 301 da página A para B, com o passar do tempo o google e outros buscadores tiram a indexação a página A, deixando apenas a B?

    Dúvida 2:
    Além de fazer o rediretc 301 é interessante colocar no robots.txt um Disallow na página A?

  19. Fábio Ricotta

    Olá Demétrios,

    1) Sim, exatamente.

    2) Não, você não deve desabilitar a página no robots senão os bots não conseguirão ver o redirect.

  20. TutorZone

    Meu site possui pagina duplicada, uma é com index.php e a outra é apenas dominio.com.br
    Como resolvo esse problema???

  21. Web Designer Demétrios

    Dúvida:

    Como redirecionar uma página dinâmica em PHP que serve para carregar vários conteúdos, mudando apenas o ID?
    Quero mudar
    paginaParaTodos.php?option=com_content&task=view&id=13&Itemid=27

    para: novapagina.php

    Levando em consideração que não posso apenas dar um redirect em “paginaParaTodos.php” porque a mesma serve para carregar outras páginas, estarei redirecionando ninguém ou então todo mundo para a a “novapagina.php”

  22. Web Designer Demétrios

    Outra Dúvida:
    Fazendo redirecionamento via DNS de .COM para .COM.BR (incluindo as páginas internas) é considerado duplicação de conteúdo pelos buscadores?

  23. Fábio Ricotta

    Eu não recomendo fazer o redirecionamento via DNS pois ele não retorna o código 301. Sem este código, o mecanismo de busca não vai definir como mudança de endereço.

  24. Felipe Rocha

    Olá Fábio,

    Esta semana comprei um domínio .com.br para botar no lugar do antigo .com . O problema é que fiz isto no mesmo servidor, logo não posso colocar um .htaccess lá, pois ele está sendo usado pelo .com.br . Como fica o redirecionamento 301 neste caso? Percebi que o próprio WordPress está redirecionando os resultados da busca.

    Com o tempo todos os links na busca pelo Google vão começar a trocar o .com antigo pelo .com.br que é o novo?

    Desculpe se estou sendo repetitivo, mas iniciante você já viu né?

    [ ]‘s

  25. Fábio Ricotta

    Você tem que testar o redirecionamento. Se ele estiver redirecionando com código 301 tudo bem, caso contrário você tem que encontrar uma forma de redirecionar corretamente.

    Você poderia mostrar a sua URL?

  26. Daniel Ideriba

    Olá Fábio!
    Gostaria de saber se fazendo o redirect com o .htaccess eu redireciono também o Page Rank das minhas páginas?

    Outra pergunta…

    Minha index não está bem rankiada no google mas as sub-páginas estão, queria saber se preciso passar no .htaccess assim:

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

    Obrigado!

  27. Fábio Ricotta

    Daniel,

    Se você efetuar o redirecionamento com 301 o PageRank será transferido para a nova página.

    Não entendi a necessidade deste redirecionamento. Se suas páginas internas estão bem rankeadas e sua home não, é sinal que sua arquitetura está fazendo o conteúdo interno ser bem forte, mas não retorna a força para a home. Você tem que analisar melhor como pode fazer isto.

  28. Daniel Ideriba

    Valeu Fábio!

    Minha dúvida era porque pensava que o rankiamento não passava de uma página para outra com um simples redirect no .htaccess

    Abraços!

  29. Marcos

    Olá Fábio,
    eu mudei da plataforma WordPress para Joomla. Estou transferindo todos os artigos da antiga para a nova página. Como poderia fazer para que as postagens antigas fossem redirecionadas para a página principal http://www.obipolar.com/index.php ?
    Obs: eu já uso redirecionamento para tornar as URL’s amigáveis e o .htaccess está assim:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/index.php
    RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
    RewriteRule (.*) index.php
    RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

    Já coloquei isto, mas não funciona:

    RewriteRule (.*) http://www.obipolar.com/$1 [R=301,L]

    Por favor, me ajude, pois não quero perder o meu page rank.
    Obrigado,
    Marcos

  30. Carlos Fran

    Ótimo artigo.
    Como muito em breve terei que concertar um remendo que fiz, vou acompanhar os comentários :)
    Abs!

  31. Cesinha

    Parabéns pelo artigo, só pelos comentários já dá p/ perceber q ajudou mtas pessoas !!!

    Eu renomeei algumas páginas do site aki da empresa q estavam bem indexadas pelo Google (Ex: DE pacotes_turisticos_internacionais.html PARA pacotes-turisticos-internacionais.html), mas olhando lá no Google Sitmaps eu vejo q mtas páginas estão retornando 404, pois exclui as páginas antigas do servidor…

    Como tenho mtas páginas indexadas e uma vez já fui punido pelo Google, gostaria de me certificar antes de criar e subir o meu arquivo .htaccess !!!

    Minha dúvida é: tenho q criar um arquivo de texto simples c/ o código abaixo (cada página redirecionada em uma linha), salvar como ‘.htaccess’ e colocá-la na raiz do meu site ???

    redirect 301 /pacotes_turisticos_internacionais.html http://www.seusite.com.br/pacotes-turisticos-internacionais.html

  32. Iran

    Minha dúvida é o seguinte: Eu tenho uma página hospedada no 000webhost.com, com endereço nomedapagina.site88.net. Eu comprei um domínio .com, mas não consigo de jeito nenhum fazer com que o endereço site88.net passe a ser “.com”. So quando eu boto redirecionamento pelo painel de controle do meu dominio, que funciona. Mas aí fica mostrando o endereço site88.net na barra de status, como eu resolvo isso?

  33. Leandro Feijó

    Fala Fábio, tudo certo ?

    Estou de volta para que possamos discutir e trocar algumas idéias !
    Andei meio sumido pois estive viajando para estudar SEO. Grandes novidades e vários projetos. Depois, podemos bater um papo…

    Respondendo à sua pergunta (“Como está a sua configuração aí?”), que acabou ficando sem resposta: não consegui de maneira alguma fazer o redirect no próprio server. Estou utilizando apenas o Tomcat e ele, até onde o Google me disse, não consegue realizar tal função. Acabei utilizando uma biblioteca especialmente para configurar URL rewrite em Java. Caso alguém queira utilizar, segue o link: http://tuckey.org/urlrewrite/

    De qualquer forma,
    obrigado pela ajuda!

  34. Rafael

    Como faço para redirecionar em CGI ???
    o Código é só isso mesmo?
    Em um servidor Windows tem como eu chamar via HTML???
    ou é impossivel??

  35. André Maito

    Achei muito bacana esse seu artigo, dada a importância do tema. Porém estou com um problema ao tentar fazer o redirecionamento via .hataccess:

    O navegador retorna um “Redirect Loop”.

    Fato:

    O Google indexou um domínio temporário (dominio.tempsite.ws) mas gostaria de redirecionar todos esses acessos para dominio.com.br. Quando utilizo o código .htaccess sugerido aqui, acontece o Redirect Loop. Alguém pode me ajudar?

    Obrigado!

  36. Vera

    Penso que falta muito ainda para que eu consiga resolver meus problemas. Ja pensei em excluir o blog mas sou movida a desafios. Tive PR 2 e cai para zero e punição. Ja estou ficando doida, de tanto estudar aqui ..rs…desculpe, sou leiga! Mas, com gente como voces aqui, dando dicas, eu chego la. Obrigada!
    Voce acha que mudar a categoria de postagens pode provocar estes problemas todos citados aqui?

  37. Fábio Ricotta

    Não não Vera…. mudar apenas a categoria não gera este tipo de problema. Deve ser alguma guideline que você infringiu.

  38. Marcos

    olá amigos, acho que me auto-dupliquei ;)
    Fiz uma faxina geral em um site, e passei ele por 301, mas algumas páginas ficaram com erro, com isso indexou errado ou mando o redirect errado, retornando erros de redirecionamento, 404 etc

    original ANTIGA = /web/arquivo.asp?l=A
    original NOVA = /arquivo.asp?l=A
    indexo = /arquivo.asp?&l=A
    indexo = /arquivo.asp
    resultado = -90% no orgânico

    Gostaria de saber se o bot vai se achando com o tempo ou devo pedir reconsideração ou…
    Outro detalhe, as “novas” páginas duplicadas, agora redirecionei também, com isso tem 3 ou 4 paginas com redirect para a original nova. vários redirect para a mesma prejudica?

    Bom, faz uma semana, estou quase pensando em me preocupar rsrsr
    Se algum leitor ou Agência Mestre tiver uma luz/previsão, obrigadO!!!

  39. Demétrios Martins

    Eu já fiz essa pergunta, mas vou fazer novamente porque sempre me deparo com este problema:

    Como redirecionar uma página dinâmica em PHP que serve para carregar vários conteúdos em uma única página, mudando apenas o ID?

    Quero mudar
    paginaParaTodos.php?option=com_content&task=view&id=13&Itemid=27
    para: paginaUM.php

    paginaParaTodos.php?option=com_content&task=view&id=15&Itemid=67
    para: paginaDOIS.php

    paginaParaTodos.php?option=com_content&task=view&id=45&Itemid=31
    para: paginaTRES.php

  40. Titto

    Olá!

    Reformulei um site inteiro, ou seja mudei nome de páginas e pastas e agora estou tendo problemas com buscadores que encontram as páginas antigas…

    pelo que eu entedi eu deveria usar o .htaccess com a seguinte linha de código:

    Redirect /links/antigo.html http://www.meusite.com.br/antigo.html

    seria isso mesmo? Aonde eu colocaria esse arquivo, na raiz do servidor, a qual não tenho acesso, ou na raiz do seu mesmo…??

    Obrigado!!!

    Parabéns pelo artigo fábio!!!

  41. Titto

    seria isso mesmo? Aonde eu colocaria esse arquivo, na raiz do servidor, a qual não tenho acesso, ou na raiz do site mesmo…??*

  42. Fábio Furlani

    Olá, Fábio!

    Acredito que o meu caso seja parecido com o do Titto, aí em cima.

    Recentemente reformulamos todo o nosso site, todos os links do antigo estão “quebrados”.

    Como devo fazer para redirecionar todos os links antigos (exemplo: http://www.livrocamp.com.br/Detalhes%20Livros%20Juridicos.asp?id_produto=1277) para a página inicial do site: http://www.livrocamp.com.br?

    Não sou programador e a empresa que desenvolveu o novo site não se preocupou e também não sabe resolver o caso.

    Desde já agradeço e BOA PÁSCOA!

  43. Andressa

    Boa Noite

    Estou com um problema. Troquei o nome de algumas URLs que ja haviam sido indexadas pelo google.
    Minhas paginas são HTML e meu site esta na plataforma Windows na locaweb. não tenho acesso a quase nada de configuração.
    Como faço o redirecionamento 301.

  44. Demétrios

    Qual o código similar abaixo para funcionar em servidor windows?

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

    O código acima eu uso para servidores Linux através do arquivo “.htaccess”. Gostaria de fazer o mesmo efeito para sites em asp hospedado em servidor Windows. Alguém pode me ajudar nesta questão ?

    Obrigado !

  45. Dominguez

    esse metodo para mover um dominio antigo para um novo pelo htaccess.

    Vc não perde nada do site antigo?

    Visitas, backlinks, indexação?

  46. Wellington

    Testei o “Redirecionamento para inserir o WWW no início do seu domínio”, funcionou perfeitamente.

    Obrigado =D

  47. LulaRibeiro

    Oi Fabio,

    gostaria de saber como faço quando tenho páginas em jsp e vou reformular o site em joomla. Faco o redirect 301 da página jsp para o novo endereco joomla e nao a apago do servidor?

  48. Felipe Barreto

    Fábio,

    Estamos desenvolvendo uma página personalizada de erro 404, com campo de busca e o mapa do site para que o usuário possa ter saídas ao se deparar com este tipo de erro. Mas estamos na dúvida se devemos utilizar redirect 301 ou 302? Acreditamos que o 301 seja uma boa alternativa, pois estaríamos indexando uma página que contém várias saídas para o nosso site. Tens alguma idéia sobre isso?

  49. Fábio Ricotta

    Felipe, você não deve utilizar nenhum tipo de redirecionamento. O código a ser retornado deve ser o 404 mesmo.

    Eu escrevi um artigo a pouco tempo comentando sobre isto: Erro 404

    Dê uma lida no artigo que ele especifica bem a idéia.

  50. Lucas Pereira Caixeta

    Na verdade, em ASP é assim para redirecionar página:

    response.redirect(“http://homologacao.aiec.br/avaliacao/lista_disciplinas.asp”)

  51. sergioronei

    Olá galera,

    O que significa a linha:

    Options +FollowSymLinks

    Eu encontrei uma explicação resumida mas não entendi direito, alguém poderia me explicar melhor?

    Obrigado!

  52. padilhalino

    Repetindo o que o Tiago disse:

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

    POIS O SERVIDOR SÓ ACEITA HTML 1.0.

    Minha página aparece em 1º nos resultados do google (pesquisando por ‘regras yugioh’).

    Preciso muito disso, pois tenho só até 25/10/2009 para migrar para outro endereço.

    Obrigado.

  53. Benito Pepe

    Olá Fabio Ricotta, estive lendo este teu artigo e muitos dos comentários. Vi que um deles (o do Renan em 8 de julho 2008) teria o mesmo problema que o meu: fazer o redirecionamento 301 do blogspot. Você respondeu: “…Vou procurar algo a respeito e postar aqui no Blog depois…”

    Você consegui ver isso?

    • Fábio Ricotta

      Olá Benito,

      Realmente não encontramos uma solução que envolva Blogspot e 301 perfeito. Existem muitas citações de uma forma de redirecionamento via Meta Refresh e Javascript mas isto não produz uma solução que realmente transfira o seu juice, coisa que o 301 resolveria.

      • rovere

        Fábio quando fazemos um redirecionamento 301 com htaccess é importante tambem colocar o robots.txt, sitemap.xml e até talvez o caminho das imagens uma vez que o google pode indexar estes arquivos em sua base de dados?

        • Fábio Ricotta

          Olá rovere,

          Eu acho que você confundiu algumas coisas. Quando se faz um redirecionamento 301 você não precisa mexer em robots.txt ou ainda no sitemap.xml.

        • rovere

          No caso o site que eu usar o 301 tem diversas imagens indexadas no google imagens, elas sofrem o redirecionamento automaticamente tb ou não?

          Qual a melhor forma de fazer isto em sites que tem imagens indexadas no google images?

  54. Frank Marcel

    Olá Benito!

    Vou dar meu pitaco por aqui, antes do Fábio! ;)

    Até hoje eu não encontrei uma forma de que seja feito o redirecionamento 301 (301 mesmo!) do Blogspot para WordPress.
    Tudo que achei foi com o uso de meta refresh.

    Eu tenho um blog no Blogspot e pretendo fazer alguns testes ainda. Assim que tiver novidades, eu envio. Grande abraço!

  55. Benito Pepe

    Ok, de qualquer maneira agradeço a atençao de vocês Frank Marcel e Fábio Ricotta.

    Um detalhe: não há como fazer esse redirecionamento mesmo que eu tenha um domínio próprio no blogspot?

    meu domínio lá é http://www.benitopepe.com (sem o Br) e agora já estou com todas as postagens no wordpress (eu consegui importar de lá para o meu novo domínio o http://www.benitopepe.com.br )

    Outra coisa: caso de fato esse redirecionamento não seja possível quer dizer que eu perderei mesmo meu pagerank3?

    Ocorre que eu fui em ferramentas para webmaster do google em configuraçoes do site > mudança de endereço e solicitei a mudança para este novo domínio. Seria melhor eu desfazer isso ou seja desfazer a solicitação ou deixar que talvez as coisas se acertem e eu não perca o pagerank?

    Mais uma vez obrigado pela atençao, e PARABÉNS por vosso trabalho!

    Abraço do Benito Pepe

    • Frank Marcel

      Benito, se você utilizou o Webmasters Tools, não precisa desfazer. Mantenha a sua configuração.

      Mas aproveite seu domínio antigo (.com) para avisar seus usuários de seu novo endereço (.com.br) e deixe links em cada post antigo para o respectivo post novo.

      É uma maneira de direcionar o tráfego. =)

      Grande abraço!

  56. wbiehl

    Olá estou com dificuldades no seguinte redirecionamento. Pretendo utilizar minhas imagens em um sub-dominio, mas não quero ter que trocar link por link. Criei o sub-dominio imagens.meusite.com.br mas o prob é que o sub dominio é o mesmo diretorio onde estão as imagens atualmente.

  57. Cézar Ayran

    conseguiiiiiiii hihihi consegui fazer com que ele redirecione quando digitar sem o www :D vlw grande!!!!!

  58. Marquito

    Olá amigo, como fazer o redirecionamento sem WWW para com WWW. usando o web.config?

    Um blog meu é no WordPress e está rodando no Windows.

    Valeu Obrigado!

  59. Priscila

    Olá, sou leitora do blog de vocês e achei muito legal esse negócio de redirecionamento, mas se eu quero usar aquele em php eu coloco o código onde? Desculpe a ignorância, sou da área de design.

  60. Leonardo Polo

    Ae cara muito bom seu post, só tenho uma duvida, meu site é todo em ASP, e eu só queria colocar esse codigo para que o yaagames.com seja igual o http://www.yaagames.com, só que tem que mudar no .htaccess, sendo que meu site nem tem esse negocio!

    Como eu arrumo? Aquele código em ASP serve para a mesma coisa?

  61. juliomelanda

    Muito bom! Mas ainda faltou ver como faz em Django!

  62. Rafael

    Salve galera,
    vamos supor a seguinte situação.

    Tenho uma página arquivo.html, mas por necessidade tive que mudála para arquivo.php.
    Só que nas buscas do google a página arquivo.html (que já não existe mais) ainda aparece.

    Qual a melhor solução neste caso? Apenas redirecionar e pronto?

    • Frank Marcel

      Olá Rafael,

      é a melhor solução sim. Redirecione com código de retorno 301 e em breve o Google atualiza o índice de resultados.

  63. Dani

    Pessoal, eu “assino” 2 domínio, um final .com (www.dicasereceitapara.com) e outro .com.br (www.dicasereceitapara.com.br). Foi configurado no wordpress para que os posts sejam publicados com a estrutura: http://www.dicasereceitapara.com.br/%postname%.html

    Quando um leitor digita http://www.dicasereceitapara.com o servidor redireciona para http://www.dicasereceitapara.com.br, PORÉM, estou querendo assinar outro domínio de final .net.com e quero que os posts e a url que apareça no navegador do leitor seja http://www.dicasereceitapara.net.br

    Agora a pergunta que não quer calar: como eu faço isso? É possível redirecionar os outros domínios (final .com e final .com.br) para esse novo domínio de final .net.br? E os posts como ficam?

    Outra coisa é: como o site já tem um pagerank, eu perco se mudar o domínio?

    Abraços e desde já agradeço!

    • Fábio Ricotta

      Olá Dani,

      Sim, você perderá todo o seu “PageRank” e Trust associado ao domínio http://www.dicasereceitapara.com.br se mudar para um .net.br

      Mas se quiser fazer isto mesmo, a melhor forma é utilizar o .htaccess direto na raiz do seu website, conforme mostramos em uma parte do artigo acima. Você conseguiu encontrar a informação?

      • Rodrigo Guedes Barboza

        Fábio, não acha que seria melhor a Dani registrar o domínio .net.br apenas para garantir a marca e redirecioná-lo para o .com.br, que já está bem rankeado?

  64. Dani

    Pessoal, obrigada pelas respostas.

    Eu tava lendo aqui mesmo neste artigo o seguinte item:

    “.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.”

    Nesse caso Fábio, o artigo diz que o “page rank” é transferido para o novo domínio caso eu use o .htaccess, é isso? Ou eu entendi errado?

    Abração!

  65. leonardo zanini golbspan

    Bom dia Fábio,

    Eu estou tento uns probleminhas :) vc pode me ajudar.

    Eu tenho um site que estava hospedado no domínio http://www.procurasp.com.br mas que agora mudei para o http://www.buskasp.com.br. O que acontece é que com essa mudança o meu hank zerou foi ai que descobri sobre esse redirecionamento 301.
    O que eu estava fazendo antes era apenas um adicionando um domínio adicional na hospedagem do http://www.buskasp.com.br do domínio http://www.procurasp.com.br, com isso o pessoal que acesso o domínio antigo vem para o domínio novo, só que o meu hank continuava zerado, ai eu removi esse domínio adicional e fiz um hospedagem simples do domínio http://www.procurasp.com.br para poder fazer o redirecionamento 301.
    Só que não está funcionando, quando eu entro no http://www.procurasp.com.br aparece uma tela de erro 500.

    Você pode me ajuda a fazer isso ? ? ?

  66. Marcelo

    Tentei novamente e acho que não funcionou.
    O que quero dizer é que uso o metahttp-equiv=refresh.
    Alterei o código para que ele não seja bloqueado neste comentário.

    Desculpe-me por ser chato.

    Muito obrigado

  67. Eder

    Estou com uma duvida, eu renomeei uma pasta que ja tinha , e na ferramenta webmaster google deu erro 301,
    Entao cheguei aqui pelo google e peguei o exemplo de redirecionamento 301 do php,porém queria saber aonde colocar esse codigo e o exemplo:

    Header( “Location: http://www.meusite.com.br” );

    no endereço ficticio eu coloco a url antiga ou a nova url.Obs:Não alterei o dominio

  68. diegoalex

    Este esquema no .htaccess serve para que qualquer coisa que for diferente do endereço principal seja redirecionado para o endereço principal:

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

    Abs.
    DiegoAlex

      • diegoalex

        Sim, neste caso todos os links que forem diferentes serão redirecionados para a url principal..

        Pelo que eu sei, quando o google acessar um link para a url que não for a principal, ao chegar no servidor, ele redirecionará para a principal, e assim , passando o link juice para a principal…

        Se voce não colocar o 301, a “relevancia” será dividida entre as várias urls (com www, sem wwww, outro dominio,etc), já com o 301, vc garante que toda a “relevancia” seja para a URL principal..

        Espero que tenha ajudado.

        Abs.

        Diego Alex

  69. Karra

    Caros amigos,
    Gostaria que me ajudassem numa dúvida. Como é feito o redirecionamento que já vi em alguns blogs que não alteram o nome do domínio principal? Já vi vários em que usa-se o sistema do blogspot, por exemplo, mas é feito um redirecionamento em que não aparece o ondereço (Ex: http://www.meublog.blogspot.com) e sim o domínio principal registrado (Ex: http://www.meudominio.com.br/post1). Tenho uma hospedagem e preciso fazer esse tipo de redirecionamento criando vários domínios que apontarão para várias páginas dentro do domínio principal.

  70. Fábio

    Olá Pessoal do Mestre Seo,
    Bem após ler os artigos, fiz diversos redirecionamentos, concertei algumas páginas duplicadas, escolhi o domínio sem www, e direciono do www para o sem www.

    O único problema que não consegui concertar foi o de, tenho duas páginas principais:
    http://pfarma.com.br com page rank 3 e
    http://pfarma.com.br/index.php com page rank 1.

    Vi que essa é uma dúvida comum nos comentários.

    Alguém sabe dizer como fazer um redirecionamento do index.php para o domínio principal.

    Tentei usar:
    redirect 301 index.php http://pfarma.com.br
    e não deu certo.

  71. Renato

    Essa opção aqui

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

    Não funciona no WordPress caso o Plugin WP-Super Cache estiver habilitado não se corrigir mais se souberem só postar ai a dica…

    • Fábio

      Olá Renato,

      Agradeço.
      Tentei utilizar mais causou erro, estou usando o Joomla.

      Antes desse código eu coloquei o de redirecionamento do www para o sem www. Que escolhi usar como domínio principal.

      Não sei se é algo do joomla, pesquisei e achei algumas alternativas para fazer este redirecionamento. Mais nenhum surtiu efeito.

  72. Fabricio Sahdo

    Galera, lí varios post e comentários e ainda não achei nada na minha situação ou não entendi as respostas por aí, tenho mais de 10mil páginas indexadas e todas elas estão com valores sobre ID’s como nesse exemplo:

    index.php?ir=resultadoBusca.php&Categoria_Id=803

    irá ficar assim:
    /empresas/bancos

    =============

    index.php?ir=verEmpresa.php&Empresa_Id=21072

    irá ficar assim:
    empresas/bancos/santander-sao-paulo

    ..
    Nesses exemplos são 1 de resultado de busca que tras o nome da categoria e a outra é a página que mostra os detalhes da empresa, no caso aí como deveria fazer o redirecionamento? porque cada página está indexada por seu próprio ID, existe alguma forma de fazer identificar a pagina e os ID’s e aí redirecionar pras páginas novas que são dinamicas?

    valeu

    • Diego Alexandre

      Fabricio,

      Tente utilizar o código para PHP que está informando no post em cada página de resultado:

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

      Por exemplo:
      Na página resultadoBusca.php coloque esse código no começo dela:

      Header( “HTTP/1.1 301 Moved Permanently” );
      //esse rs!NomeDaCategoria é seria o nome da categoria q vc traria do banco de acordo com o código da url
      Header( “Location: /empresas/”+rs!NomeDaCategoria );

      Eu não fiz esse teste, mas acredito que isso funcionaria.

      Ai para a página verEmpresa.php você faria a mesma coisa.

      ps.:mas para isso é necessário que as urls amigaveis já existam…..rsrs

      Espero que ajude!

    • Fabiane Lima

      Bom, você vai precisar fazer duas coisas. Primeiro associar a URL amigável com o conteúdo da URL não amigável. Ou seja, você vai ter que escrever uma regra para quando o usuário entrar com a URL:

      empresas/bancos/santander-sao-paulo

      Você vai retornar o conteúdo de:

      index.php?ir=verEmpresa.php&Empresa_Id=21072

      Para tanto, você vai precisar montar um arquivo php que vai fazer a pesquisa inversa (dos parâmetros da URL amigável para encontrar o parâmetro da URL não amigável) e usar o mod_rewrite do apache para fazer essa consulta sem trocar a URL. A expressão que você vai usar para fazer essa consulta é semelhante à essa:

      RewriteEngine On
      RewriteRule ^([^/]*)/([^/]*)/([^/]*) /consulta1.php?parametro1=$1&parametro2=$2&parametro3=&3[L]

      Estou dizendo que empresas é o parametro1, bancos o parametro2 e santander-sao-paulo o parametro3. Esse arquivo consulta.php é que vai fazer o processo inverso – quando você passar a URL amigável para esse arquivo ele terá que te retornar a URL não amigável para o mesmo.

      Esse resultado você vai usar para dizer que quando o usuário acessar pela URL amigável você vaio buscar o conteúdo da URL não amigável para mostrar para o usuário.

      Entretanto, quando o usuário entrar com a URL não amigável, esta deverá ser redirecionada para a URL amigável.

      Você pode ler mais alguma coisa sobre esse assunto em: http://www.agenciamestre.com/seo/utilizando-mod_rewrite-para-criar-urls-amigaveis

      Outra maneira (e a mais indicada) é alterar a estrutura do seu banco de dados para obedecer a estrutura de URLs amigáveis que você pretende utilizar.

  73. Rafael

    OLá!
    Vocês sabem me dizer se tem como redirecionar um dominio antigo que usava no blogger para um novo que configurei no blogger pois uso do uolhost e não tem como fazer manualmente,entrei em contato pelo chat mais disseram que só tem como fazer com htacess.Tenho hospedagem mais não tem nada a ver como o dominio uso outros(quero redirecionar blogcafusao.com para webprincipiante.com).
    Criei este arquivo na pasta raiz (public html) mais não funcionou…