Redirecionamento 301

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.

64 comments on “Como Fazer Redirecionamento 301

Reply

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

Reply

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?

    Reply

    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

    Reply

    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

Hélio
Reply

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

Rogerio
Reply

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,

    Reply

    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

Roberto Carlos
Reply

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,

    Reply

    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

    Reply

    Prezado Carlos Eduardo.

    Digamos que você use o wordpress com urls amigáveis e você queira fazer um redirecionamento 301 da url antiga pra url nova:

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    redirect 301 /Url-Antiga http://www.carti.com.br/Url-Nova/

    Se você não usar wordpress, penso que fica assim: (mas não tenho 100% de certeza)

    RewriteEngine On
    RewriteBase /
    redirect 301 /Url-Antiga http://www.carti.com.br/Url-Nova/

    Esse rewrite é um módulo do apache (servidor web) que tem que estar ativado pra poder mudar as urls.

    Espero ter ajudado.

    Eduardo Gasparetto

Rodney Ferreira
Reply

O que significa o parâmetro [r=301,NC] e [r=301,L] , Tudo bem 301 é o redirecionamento permanente certo?

E o “L” e “NC” que aparecem?

O certo é assim [r=301,L] ou [L,r=301] com o “L” primeiro?

Muito bom o site, até!

    Reply

    Ola Rodney,

    Infelizmente eu não me lembro de cabeça o significado de cada parâmetro.
    Se você tem essa dúvida, pode baixar a documentação original e procurar.

    Eu mesmo quando preciso fazer redirecionamentos venho até meu site e copio e colo as receitinhas que funciona perfeitamente.

    Abracos

    Eduardo Gasparetto

Eduardo
Reply

Olá Eduardo,

Eu fiz uma alteração em uma loja oscommerce, usando o Magic Seo para criar urls amigáveis.
O próprio programa criou diversos RewriteRules no arquivo htaccess, e aparentemente tanto o link antigo como o novo ainda são acessados.
Minha questão é, nas minhas campanhas do adwords os links ainda estão no formato estático. Devo alterar todos eles apontando para as urls dinâmicas para obter um melhor SEO, ou deixo como está?
Te agradeço muito pela ajuda.

Abraços

Eduardo

    Reply

    Ola Eduardo.

    Se a url antiga e a nova podem ser acessados então está errado. Se você entrar pela antiga ela tem que sofrer um redirecionamento 301 para a nova url,
    pois se o mesmo conteúdo é acessado de diferentes urls, isso caracteriza conteúdo duplicado.

    Eu usaria as urls dinâmicas no adwords para ganhar algum bonus na qualidade do anúncio.
    Ter a palavra chave na url ajuda um pouco, logo, você irá pagar um pouco menos pelo click em cada palavra.

    Atenciosamente

    Eduardo Gasparetto

Reply

Muito bom seu post.

Porém estou com um problema pois eu tenho dois dominios e uso os dois.
EX: http://www.meusite.com (versao ingles) e
http://www.meusite.com.br (versao portugues)

quero criar urls unicos para cada idioma. antes eu tinha

http://www.meusite.com e .com.br/assinaturas/ e agora quero que meu site fique

http://www.meusite.com/subscription e o http://www.meusite.com.br/assinaturas.

Tentei fazer o redirecionamento usando o seguinte codigo e nao funcionou.

#redirecionamento
RewriteRule ^http://www.meusite.com/assinaturas(.*) http://www.meusite.com/assinaturas/$1 [R=301,L]

como devo proceder?

Alexsandro
Reply

No caso de ter vários sites, hospedados num mesmo servidor apache, como posso fazer para todos completarem com “www”, caso não seja digitado no acesso?

      Alexsandro
      Reply

      mas no caso de um WordPress Multi-sites… não seria possível criar um arquivo único com uma expressão como exemplo,
      ^[^w{3}](.*)
      na qual checa tudo o que não tem www e criar uma saída para acrescentar?

        Reply

        Alexsandro, se permite o palpite, tenho 3 pontos:

        1. Nos WPs que eu já mexi, naqueles campos de configuração geral, uma vez que eu entro como URL do wordpress http://www.nome.com, ele trata o redirecionamento sozinho, sem precisar fazer nada;

        2. Não trabalhei com WP multi-sites, mas imagino que seja da mesma forma;

        3. A expressão regular para tratar todos seguiria por essa linha que você começou. Você pode testar e ver o que dá.

        Abraços!

Reply

Olá,

Li o seu artigo, mas ainda me restam algumas dúvidas na questão de “como fazer” o que foi explicado. Perdoe-me minha imperícia, mas ainda sou uma leiga com relação a linguagem usada.

Bom, recentemente tive que mudar o meu domínio. Na verdade, foi retirada apenas a palavra ‘blog’ do endereço, mas isso já muda tudo. Dessa forma, fazendo algumas pesquisas no Google, observei que as minhas páginas não estavam sendo redirecionadas para o link correto. Sei que no seu artigo você diz os códigos que devo modificar para fazer o redirecionamento 301, mas a questão é: Onde devo colocar o código mais apropriado para o meu perfil?

Abraços,
Isabelle.

Reply

Oi,

Comprei um certificado ssl e ele está instalado no site principal. Porém, quando vai para os subdominios diz que o site não é seguro. Como faço para redirecionar para o certificado?

Não entendo muito de tecnologia.

Agradeceria qualquer ajuda.

    Reply

    Ola Laura. O certificado SSL é por domínio, ou seja, ele somente certifica 1 domínio. Subdomínios são considerados outros sites, se caso você queira usar certificado nos subdomínios, você precisa de um certificado para cada subdomínio.

    Caso tenha dúvidas e precise de ajuda especializada, entre em contato conosco que nossa consultoria pode ajuda-la.

Reply
    Reply

    Sim Rafael, seu domínio deve responder somente a uma url.
    Caso os visitantes chegarem a ele através de outra url, como a sem www, ele deve ser redirecionado para a sua url padrão,
    ou seja, caso você escolheu http://www.exemplo.com.br o visitante será redirecionado para ela.

    Espero ter ajudado.

    Atenciosamente
    Eduardo Gasparetto

Reply

Olá, tenho um domínio mas não consigo fazer redirecionamento do( /index.php) e nem do ( / ) para apenas http://www.site.com.br gostaria de tirar o como proceder fiz os exemplos acima e fica pagina branca e carregando apenas mas nada aparece

uso plataforma opencart loja virtual

Reply

Olá gostaria de saber o seguinte: Eu tinha um site hospedado com a seguinte url meusite.com.br, sendo que cancelei a assinatura e consequentemente o site saiu do ar, então eu hospedei o novo site em um subdominio de outro site que vamos chamar de parceiro.com.br, oque resultou em uma url nova meusite.parceiro.com.br, tem como eu criar um redirecionamento para quando digitarem meusite.com.br apontar para meusite.parceiro.com.br… grato pela a ajuda

    Reply

    Ola

    Tem sim, mas você precisa ter acesso a raiz do site original, exemplo meusite.com.br para colocar o .htacess com o redirecionamento.

    Melhor ainda seria se você subir o mesmo site com a mesma estrutura em um novo servidor, mas usando o mesmo dominio, meusite.com.br, desta forma mantendo as mesmas urls você não precisa de redirecionamento.

    Caso você não tenha mais acesso a raiz do site meusite.com.br você não tem como redirecionar.

Reply

Prezados amigos;
Necessito da vossa ajuda para o seguinte:
Acessei um website para fazer compra de filmes, e depois de ter introduzido todos os dados (e-mail, dados do cartão visa, etc.), apareceu 301 moved permanently e não consegui finalizar a compra.
Muito obrigado pela atenção.
Melhores cumprimentos.
JOSÉ ROCHA – PORTO – PORTUGAL

    Reply

    Ola José Rocha,

    Se você recebeu um 301, significa que o site mudou de endereço, e você deveria ter sido redirecionado para o novo local deste site.

    Infelizmente não existe nada que possamos fazer pra te ajudar.

    Recomendo entrar em contato com o site e questionar a compra.

    Atenciosamente

Reply

O conteudo do meu site estava na pasta de nome joomla do meu dominio “www.samotur.com.br/joomla”.
Atualizei o ocnteúdo e coloquei tudo na raiz, a pasta joomla ficou vazia.
Como faço para direcionar os acesso que vem através da url “www.samotur.com.br/joomla”, para “www.samotur.com.br/”.

Reply

Fiz tudo direitinho… Na minha pasta não tinha mas crieio .htaccess com o código abaixo, joguei na pasta raiz e quando fui testar não redirecionou nada!

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]

Reply

Olá José Rocha,

Eu tenho vários domínio e quero fazer o redirecionamento dos mesmo para um domínio só ou seja para o meu site, quero saber como fazer isto eu estou usando o WP,

    Reply

    Ola Viviane.

    Neste caso você precisa usar expressões regulares, onde as urls precisam seguir um determinado padrão.

    Dá pra fazer, mas é bem mais complicado.

    Se você não tiver muitas urls, pode fazer o redirecionamento de url a url.
    Mas se tiver muitas url, ai o correto é usar expressão regular mesmo.

    Atenciosamente

Reply

Bom Dia, Eduardo, tudo bem?

Desde já agradeço pelos posts publicados,que me ajudam bastante.
Estou com um problema ou ate mesmo uma duvida.

Eu tenho um dominio principal chamado rpps.com.br, e dentro deste dominio eu tenho varios subdominios.
A minha pergunta é, como eu faço para redirecionar , isto é, se a pessoa digitar http://www.lavalle.rpps.com.br, que seria um subdominio, gostara que fosse para a pasta, ou seja, para lavalle/, e assim por diante, Se a pessoa digitar alexander.rpps.com.br redireciona para alexander/

É possivel fazer isto?

Aguardo breves noticias

abs

Reply

Olá, Eduardo.

Achei seu post muito interessante. Eu fiz o redirecionamento do meu site para abrir sem o www e funcionou. Depois eu fiz o teste para abrir apenas com www usando o script postado aqui, com o .htaccess e não funcionou.

Eu ainda alterei os DNS CNAME e entradas A no meu WHM e mesmo assim não deu certo. Você teria alguma sugestão, ou poderia me dizer porque não funcionou para abrir com WWW?

Reply

Cara, adicionei www ao meu site, uso wordpress, automaticamente quando digito digito o site no navegador sem www, ele abre meu site, mas ja com www, gostaria de saber se preciso fazer redirecionamento, pois ja defini o www nas configurações do wordpress e também no webmasters, será q o google automaticamente ja vai excluir as urls antigas sem www ? Pois ele ja redireciona automaticamente.

    Reply

    Ola Natan.

    Acredito que sim. Se você fez o redirecionamentos 301 corretamente em alguns dias (1 mes) ele deve excluir as antigas urls e atribuir o valor delas as novas urls.

    Abracos

Reply

Tenho vários domínios registrados e agora que atualizei meu site estou querendo redirecionar todos para o principal caso eu use .htacess o cliente buscar ira aparece site/pagina.html mais as paginas não existem neste novo servidor e não estou querendo criar uma por uma qual a forma mais correta de se fazer este redirecionamento no caso do cliente digitar ate mesmo no navegador direto siteantigo.com.br/pagina.html cair no sitenovo.com.br/paginanova e nao sitenovo.com.br/paginanovapagina.html que é o que está acontecendo.

Reply

Olá, tenho uma duvida.
Meu site estava hospedado no AW, porem o novo desenvolvedor refez todo o site em magento e hospedou em outro servidor a Nexcess. Sendo assim todas as URL mudaram. Como eu posso fazer essa mudança? Terei que mudar URL por URL no painel Magento de Gerenciamento de restrição da URL?

Abs

    Reply

    Ola Taise.

    Você tem 2 opções:
    1 – Redirecionar url a url da antiga para a nova.
    2 – Redirecionar todas as urls antigas para a home do site (não é o ideal mas é melhor que não fazer nada).
    Acredito que via painel de magento além de carregar o sistema deve dar um trabalho enorme.
    O ideal é usar o .htaccess pois o redirecionamento é feito a nível de servidor, gerando um impacto mínimo de performance.

    Abracos

Reply

Estou precisando usar um dominio antigo para conseguir redirecionar as urls indexadas dele para meu novo dominio.
Porem este domínio não tem mais hospedagem, estou apontando ele direto para um subsite meu que usa wordpress.
Quero que quando um pagina como site-antigo/android-travando.html seja automaticamente redirecionada para sitenovo/android-travando.html assim posso redirecionar para o conteúdo certo via plugin.
OBS: meu subsite tem um .htaccses so para ele e o site-antigo ja esta direcionado para o subsite com novo dominio.
Por favor me ajude.

    Reply

    Ola Marcus.

    Para fazer o redirecionamento você precisa ter uma hospedagem com o domínio antigo.
    Se você perdeu ele, ai não tem o que fazer.

    Caso tenha ainda, você precisa preparar um arquivo .htaccess com as urls do dominio antigo apontando para o dominio novo.
    Você pode fazer um TodasUrls > NovoDominio onde todo o tráfego é direcionado pra home do novo domínio, resolvendo o problema,
    ou fazer url a url, que dá bem mais trabalho, porém é mais relevante.

    Espero ter ajudado.

Reply

Boa tarde Eduardo,

Parabens pelo artigo! Realmente ajuda muito!

Só tenho uma dúvida quanto ao redirecionamento com e sem www. Este redirecionamento pode ser feito nos dois sentidos, ou seja, de sem www para com www ou de com www para sem?

Se meu site redireciona todas as consultas (com e sem www) para uma URL sem www, isso significa que ele já tem um redirecionamento? Ou eu tenho que fazê-lo mesmo assim?

desde já agradeço,

Abraço,

    Reply

    Ola Valter.

    Sim, você pode fazer nos 2 sentidos, mas não ao mesmo tempo.
    Escolha qual você quer, com www ou sem www e faz somente o redirecionamento do que você não quer para o que você quer, pois o outro já está correto.

    Atenciosamente

Reply

Olá
Tenho uma loja virtual cuja a plataforma é Prestashop,
No site que faz análise SEO diz que meu site não está redirecionando de http:// para http://www.
Aparentemente você verá que tem o www. mas é porque estou usando um recurso da prestashop na qual você digita no Back-office da loja o www.
Mas no .Htacess tentei colocar alguns códigos que peguei por aí,mas quando coloco minha página sai do ar.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *