Como Fazer Redirecionamento 301

Ajude a divulgar este artigo:


Muitas vezes quando vamos aplicar os conceitos de SEO ou criar um novo website, seja algumas páginas ou todo o site para um novo domínio, ou quando temos que mudar o nome de um arquivo ou mudá-lo de lugar, estamos causando uma alteração do endereço desde arquivo (URL). Nestes casos, todos os links que apontavam para a url antiga são perdidos, fazendo com que usuários que chegariam em seu site através destes links tenham uma má experiência.

Outro fator a se considerar é que quando o google está realizando o processo de crawling (vasculhando a internet a procura de conteúdo), ele encontrará vários erros 404 em seu site (página não encontrada) e a longo prazo o acúmulo destes erros 404 pode resultar em uma queda de rankeamento.

Para resolver tais problemas precisamos de uma forma de redirecionamento, para que quando alguém referenciar o endereço ou arquivo antigo seja levado ao novo endereço automaticamente. Este redirecionamento chama-se 301 e faz parte do protocolo HTTP que indica que sua pagina foi movida permanetemente.

Como Funciona Redirecionamento 301

Como fazer redirecionamento 301:

Redirecionamento 301 em Servidores Windows

Nos Servidores Windows é usado um componente chamado Isapi Rewrite que trabalha da mesma forma que o mod_Rewrite do Apache manipulando e “reescrevendo” a URL do site. Você pode utilizar este componente de diversas formas baseado em expressões regulares.

* Windows 2003:

- Isapi Rewrite 2: Trabalha com o arquivo de configuração httpd.ini

- Isapi Rewrite 3: Trabalha com o arquivo de configuração .htaccess

* Windows 2008:

- Isapi Rewrite 3: Trabalha com o arquivo de configuração .htaccess

E como isso impacta no redirecionamento de Servidores Windows?

Isso significa que a maioria dos sites que utilizam servidores windows funcionam de forma muito similar aos servidores linux, podendo utilizar um arquivo .htaccess para fazer este redirecionamento da mesma forma que faria em um servidor linux.

RewriteCond Host: ^seusite.com.br

RewriteRule (.*) http\://www.seusite.com.br [RP,L]

RewriteCond Host: ^http\://seusite.com.br

RewriteRule (.*) http\://www.seusite.com.br [RP,L]

Redirecionamento 301 com PHP

<?

Header( “HTTP/1.1 301 Moved Permanently” );

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

?>

Redirecionamento 301 com .htaccess

redirect 301 /diretorio/antigo_arquivo.htm http://www.exemplo.com.br/novo_arquivo.htm

E se quiser-mos mudar o domínio inteiro, para não perder a força dos links que apontam para nosso site, ou visitante. Faça da seguinte forma:

Redicionando um domínio antigo para um novo com o .htacess

Options +FollowSymLinks

RewriteEngine on

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

Substitua www.sitenovo.com.br pelo novo domínio de seu site, e o insira na raiz do site antigo com o nome de .htaccess

Este método funciona apenas para servidores apache com mod_rewrite.

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

Como redirecionar domínio sem www para o domínio com www

Para casos onde seu domínio responde tanto como http://exemplo.com.br e http://www.exemplo.com.br, devemos fazer com que o domínio sem www seja redirecionado para o domínio com o www, desta forma acumulamos o máximo de força somente em um domínio. A falta deste redirecionamento resulta em conteúdos duplicados e links para ambos domínios.

Para inserir o www no início do seu domínio insira o código abaixo em seu .htaccess na raiz do site:

RewriteEngine on

Options +FollowSymlinks

rewritecond %{http_host} ^seusite.com.br [NC]

rewriterule ^(.*)$ http://www.seusite.com.br/$1 [r=301,NC]

Substituindo seusite.com.br pelo nome do seu site nas duas ocorrências.

Espero que tenham gostado. Comentem abaixo.

16 Responses to “Como Fazer Redirecionamento 301”

  1. Aroaldo 1 de abril de 2011 at 8:38 #

    Parabéns pelo post, foi bem claro!

    Tenho uma dúvida! Como faria para direcionar do site meusite.com.br para meusite.com? e além disso colocar o www

    Valeu

  2. Aroaldo 3 de abril de 2011 at 2:20 #

    Ops! Gerou loop no servdiro, pois eu já tenho um alias para o meusite.com que aponta para meusite.com.br

    Nesse caso não tem jeito, não é? Tem como colocar o www na frente mesmo sendo o mesmo .htaccess para os dois domínios?

  3. André Siqueira 16 de junho de 2011 at 13:11 #

    Boa tarde, como faço para direcionar todas minhas visitas para meu dominio sem o www? …. ou seja, quero que todos os visitantes sejam redirecionados para a página http://meudominio.com.br

    Obrigado

    • Eduardo Gasparetto 16 de junho de 2011 at 19:48 #

      Prezado André

      Para redirecionar todas as suas vizitas de seu site sem www para com www deve-se colocar o seguinte código ao final de seu arquivo .htaccess:


      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$ – [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]

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

      Veja qual o conteúdo de seu .htaccess, caso ja tenha algo, compare as linhas para ter certeza de não colocar nada duplicado.
      As 2 ultimas linhas são as mais importantes, a rewritecond mostra a condição, que é do site comecar com http://www.seusite.com.br e a rewrirerule é a regra que faz o redirecionamento em si.

      Espero ter ajudado.

      Eduardo Gasparetto
      @ocarti

  4. Paulo 15 de agosto de 2011 at 16:00 #

    Boa tarde, primeiramente parabéns pelo blog.
    Minha dúvida é a seguinte como faço para testar se a configuração que eu fiz esta certa? configurei o redirecionamento de sem www para http://www.dominio.com.br

    • Eduardo Gasparetto- 15 de agosto de 2011 at 18:26 #

      Ola Paulo.

      Para saber se está funcionando, basta digitar o endereco do seu site no navegador sem www e este será redirecionado para o local correto caso esteja funcionando corretamente.

      Eduardo Gasparetto

  5. Hélio 5 de setembro de 2011 at 13:29 #

    Eduardo, boa tarde.
    Primeiramente, parabéns pelo post. Rewrite e ER ainda são um tanto complexas para mim.

    Tenho uma dúvida, em meu site existem várias pastas, muitas delas são hotsites por isto o acesso http://www.site.com.br/hotsite deve ser mantida.
    Por outro lado, preciso que todas as conexões vindas para a raiz (www.site.com.br) seja direcionados para uma nova versao que está funcionando em http://www.site.com.br/v2011.

    Como escrever uma regra que funcione apenas se acessarem http://www.site.com.br redirecionando-os para http://www.site.com.br/v2011 mas sem que os hotsites entrem nestas regras?

    Detalhe, como são muitas pastas, não gostaria de alocar um .htacces em cada pasta…

    Fico no aguardo

    Muito obrigado e mais uma vez, parabéns.

    Hélio Fernades

  6. Rogerio 7 de outubro de 2011 at 5:47 #

    Ola Eduardo,

    Tenho 5mil postagens, das quais 1000, estao com not found,devido a passagem do blogspot pro wordpress,algo nao foi feito corretamente,portanto precisaria que essas postagens, fosse redirecionadas ( 301) para url das determinadas categorias.
    EX. o link com erro 404, è sobre uma receita culinaria de doces, entao ela pertence a uma categoria dentro do wordpress ( category doces), e assim fosse automaticamente pra essa url.
    E deste modo pra todas as outras AUTOMATICAMENTE.

    Agradeço desde jà a atençao,

    • Eduardo Gasparetto- 7 de outubro de 2011 at 8:54 #

      Ola Rogerio.

      Não existe nada automatico.
      O que existe são expressões regulares, que fazem com que certos padroes consigam abranger mais do que 1 url simplismente.

      O maior problema dessas urls que mudaram é que os links que apontavam para as urls antigas foram perdidas,
      e toda a força e relevância que aquelas páginas tinham estão sendo perdidas.

      Caso necessite de uma consultoria, entre em contato pelo telefone (11) 2507-0114 e fale conosco ou pelo email contato@carti.com.br
      Atenciosamente

      Eduardo Gasparetto

  7. Caio 18 de outubro de 2011 at 17:42 #

    Boa tarde
    Eduardo excelente artigo.
    Super esclarecedor,auxilia muito no nosso desenvolvimento e no aprendizado de todos.
    Parabens!!!

    • Eduardo Gasparetto- 18 de outubro de 2011 at 18:26 #

      Ola Caio.

      Obrigado pelos elogios.
      Fico feliz que tenha gostado.
      Veja tambem os outros artigos do blog.
      Abracos

  8. joao 31 de dezembro de 2011 at 12:33 #

    Meu servidor é windows e usa o .htaccess, porém não consigo usar nem uma das opções abaixo:

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

    nem o:

    2-) RewriteRule /old-page.asp http://www.seudominio.com.br/novo_diretorio/arquivo.asp [I,O,RP,L]

  9. Roberto Carlos 23 de fevereiro de 2012 at 22:24 #

    Olá Eduardo,

    Parabéns pelo site e pelo post. E parabéns também pelo Podcast, tenho acompanhado todas publicações.

    Estou com uma dúvida e gostaria de contar com seu suporte. Estou desenvolvendo um site e comprei um domínio que é a palavra chave do segmento, para dessa forma rankear melhor nos buscadores. Entretanto, seria interessante ter também o domínio com o nome da empresa, por questão de branding. Seria possível colocar todo conteúdo no domínio (palavra chave) e no domínio nome da empresa fazer um redirecionamento o de palavra chave?

    Obrigado,
    Abs,

    • Eduardo Gasparetto 24 de fevereiro de 2012 at 13:58 #

      Obrigado. Fico feliz que esteja gostando do podcast.

      A palavra chave funciona como um bônus para seu site, não basta ter o site como palavra chave para que ele rankeie em primeiro lugar.

      Vamos supor que sua palavra chave seja “agua” e sua marca seja “KLKLK”, pelo que entendi você quer colocar todo o conteudo em http://www.agua.com.br e no dominio http://www.KLKLK.com.br fazer um 301 para o agua.com.br.
      Eu acho que o mais interessante seria fazer seguinte:

      Crie 2 sites, 1 da empresa com a marca e 1 com conteudo para agua. Apos agua rankear razoavelmente bem, faça um 301 para o KLKLK. Desta forma quando a pessoa procurar por agua ela vai enchergar agua.com.br, porem ao entrar no site ela vai interagir com sua marca, com a possibilidade de ser impactado por KLKLK.com.br mais vezes e desta forma reforçando a marca.

      Isso não quer dizer que seja a melhor estratégia, mas é um modo interessante de se abordar.

      Espero ter ajudado.

      Eduardo Gasparetto
      http://about.me/eduardogasparetto

Leave a Reply