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:
Como fazer o redirecionamento 301 usando um servidor windows.
Como adicionar www no começo do domínio
Como fazer o redirecionamento 301 usando PHP
Como fazer o redirecionamento 301 usando o .htaccess no linux
Como fazer o redirecionamento de um domínio inteiro para um domínio novo usando .htaccess
Como fazer o redirecionamento 301 usando ASP
Como fazer o redirecionamento 301 usando ASP.NET
Como fazer o redirecionamento 301 usando JSP java
Como fazer o redirecionamento 301 usando ColdFusion
Como fazer o redirecionamento 301 usando Perl
Como fazer o redirecionamento 301 usando Ruby on Rails
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.

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
Prezado Aroaldo.
Para fazer o redirecionamento como você perguntou, adicione no seu .htaccess o seguinte conteúdo:
Desta forma tanto o meusite.com.br e http://www.meusite.com.br serão redirecionados para http://www.meusite.com
Abracos
Eduardo Gasparetto
Funcionou!! Parabéns
)
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?
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
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
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
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
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
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,
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
Boa tarde
Eduardo excelente artigo.
Super esclarecedor,auxilia muito no nosso desenvolvimento e no aprendizado de todos.
Parabens!!!
Ola Caio.
Obrigado pelos elogios.
Fico feliz que tenha gostado.
Veja tambem os outros artigos do blog.
Abracos
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]
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,
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