Redirecione o site inteiro via .htaccess

Mudar de domínio é difícil. Não bastasse o transporte dos arquivos e bancos de dados de um servidor para outro, ainda temos o redirecionamento do endereço antigo para o novo, que para muitos é um bicho de sete cabeças. Digo, para quem sabe, pode até ser fácil, mas para quem não tem muita intimidade com servidores e coisas do tipo, a coisa complica.

Uma solução simples é pedir ao suporte do servidor que adicione o domínio novo: assim, ambos os domínios, o original e o antigo, funcionarão. Não sei se isso caracteriza conteúdo duplicado, prática que detona qualquer estratégia de SEO, mas na dúvida, evito. Afinal, fazendo isso, os dois domínios continuam acessíveis, cada um em sua própria URL, ambos caindo no mesmo conteúdo. Outro efeito colateral ruim é a descentralização da marca, afinal, se com um TLD já é difícil fixar o domínio na cabeça das pessoas, imagine com dois ou mais?

Como se vê, essa não é a melhor saída. Precisando de uma solução, já que tinha que redirecionar dois domínios (.com e .com.br) para o novo (.ig.com.br), corri atrás de uma mais amigável e transparente, tanto para o leitor, quanto para os mecanismos de busca. E a encontrei. Não lembro aonde, mas encontrei. Funciona via .htaccess, e é bem simples de ser implementada.

O código é o seguinte:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?antigo.com [NC]
RewriteRule ^(.*)$ http://www.novo.com/$1 [R=301,L]

Copie, cole no seu .htaccess, e faça as devidas modificações. Se houver mais de um domínio antigo, repita as duas últimas linhas na seqüência, alterando, obviamente, o domínio antigo.com pelo antigo2.com. Simples assim.

31 thoughts on “Redirecione o site inteiro via .htaccess

  1. Erico meu rei, tenho um plugin que avisa da segurando do servidor, ele esta dizendo que o meu está faltando este arquivo, .htaccess, tem como você fazer um post ou material falando desses arquivo e será que tem como eu restaurar este arquivo?

  2. Ótimo post Rodrigo, tava precisando e muito dessa dica, agora tenho uma dúvida, este é o código do arquivo .htaccess em meu diretório /blog que quero passar todo para o diretório raiz:


    # BEGIN WordPress

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

    # END WordPress

    O código que está no post, irei colocar no lugar de tudo que está entre as tags IfModule? Ou não?
    Se aplica da mesma forma em sites normais e em site WordPress? Ou tem alguma diferença?

    E valeu pela dica, continue assim Rodrigo sempre ajudando melhorando este site.

  3. Ótimo post. Entretanto, creio que, em certos casos, usar dois domínios não descentraliza a marca. Ao contrário, ajuda o usuário a chegar onde quer. Por exemplo, tenho um blog hospedado em jlcarneiro.com. Mas, como muitos usuários acrescentavam o sufixo .br, adquiri o domínio jlcarneiro.com.br, redirecionando-os (via HTTP 301) para o domínio original.

  4. @ Wagner

    Sim, você pode criar um .htaccess em seu servidor.

    @ Paulo

    Não apague esse código! Ele é responsável por criar os pemalinks em seu blog. Altere o endereço através das opções do WordPress, e depois, recrie a estrutura de permalinsk (entre em Settings, vá em Permalinks).

    O código do post deve ser colocado no .htaccess na raiz, assim, ele servirá para o site inteiro.

    Antes de qualquer coisa, guarde uma cópia de backup de todos os arquivos que for utilizar. Assim, caso faça alguma besteira, pior do que já estava antes não ficará :) .

    @ José Luiz

    Tinha o mesmo problema no WinAjuda. No caso, preferi o redirecionamento via .htaccess, ao invés do HTTP. É mais transparente para o leitor ;) .

    []‘s!

  5. @ Ghedin

    Eu também uso o redirecionamento via .htaccess, só que a regra termina como [NC,R=301,L], ou seja, o leitor (humano ou robô) é redirecionado com um aviso HTTP 301 (Moved Permanently).

  6. Pingback: lucianaweb no diHITT

  7. Oi, Rodrigo,

    estava justamente hoje pesquisando alternativas para este tipo de redirecionamento. Eu tenho várias situações, na verdade, então preciso entender o que é melhor em cada caso. Uma das situações é que o Projeto 101 Coisas em 1001 Dias, que hoje está em http://www.patriciamuller.com/101 tem agora dompinio próprio. Registrei 101coisasem1001dias.com, .com.br, .net, .org e .info. O principal vai ser o .com. Então vou precisar:

    1) redirecionar o subdiretório em que o site está hoje para o domínio novo – principal.

    2) redirecionar os domínios opcionais para caírem no mesmo site.

    Você (ou alguém mais) sabe quel a melhor forma de fazer tudo isso? Esta dica vale também para subdiretórios?

    Abçs.

    Patricia.

  8. Legal esse Post.
    Mas esse redirecionamento serve apenas para o dominio principal, certo?
    Por exemplo, se eu tiver um site http://www.xxyy.com.br e mudar para http://www.xxyy.com, ele mudará também os meus posts que estão dentro do dominio antigo? Acho que não.
    Uma vez tentei fazer e não consegui.
    Me disseram que eu teria que usar expressões regulares e mesmo assim nao consegui fazer funcionar.

    abraço!

  9. @ Patrícia Müller

    Patrícia, acho que se você colocar o subdomínio na primeira linha, deve funcionar. No seu caso, ficaria assim:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(www.)patriciamuller.com/101 [NC]
    RewriteRule ^(.*)$ http://www.101coisasem1001dias.com/$1 [R=301,L]

    Para os demais domínios, basta repetir as duas últimas linhas, na seqüência. Ficaria assim:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(www.)patriciamuller.com/101 [NC]
    RewriteRule ^(.*)$ http://www.101coisasem1001dias.com/$1 [R=301,L]

    RewriteCond %{HTTP_HOST} ^(www.)patriciamuller.com/101 [NC]
    RewriteRule ^(.*)$ http://www.101coisasem1001dias.net/$1 [R=301,L]

    RewriteCond %{HTTP_HOST} ^(www.)patriciamuller.com/101 [NC]
    RewriteRule ^(.*)$ http://www.101coisasem1001dias.com.br/$1 [R=301,L]

    E assim por diante. Não testei, mas tenho quase certeza que funciona.

    @ Marcelo

    Esse código redireciona tudo, inclusive subdiretórios (www.site.com/pasta); só não testei com subdomínios (pasta.site.com), logo, esse eu não garanto. Quer ver um teste prático? Entre aqui: http://www.winajuda.com/2008/09/19/im-a-pc/. Note que a URL mudará, automaticamente, de .com para .ig.com.br. É por isso que esse código é bom, e vai bem além de um simples redirect no head da página ;) .

  10. Eu tenho um wordpress hospedado no 000webhost.com, e fica com o endereço nomedosite.site88.net, eu comprei um dominio .com, gostaria que todos os meus links do site fosse apontado somente para o .com
    exemplo: nomedosite.site88.net/sobre ficasse assim http://www.nomedosite.com/sobre
    como eu faço?

  11. Kra eu to com um problema que é o seguinte: estou usando o plugin on_install para ter vários sites rodando numa só plataforma. Mas como esta plataforma está na pasta blog e n na raiz acaba causando um erro. Acho que vc deveria dar uma olhada neste plugin, pq afinal ele economiza mt tempo para o desenvolvedor que tem uma base boa de clientes. Depois me fale o que acho q se imagina algum concerto pro problema, leia os comentários que vc ficará por dentro. Url: http://www.diegolopes.com.br/blog/producao-multimidia/uma-instalacao-do-wordpress-para-varios-sites-com-banco-de-dados-diferente/
    Grd abço!

  12. Galera eu acho que o problema ocorre porque meu wordpress não está instalado na raiz. Meu htacess fica assim:

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

    Acho que por n estar um htacess genérico faz com que ocorra os erros que falei acima, alguém sabe algum jeito de solucionar isto? colocar um if dentro do htacess rola?

  13. RewriteEngine On
    RewriteBase /blog/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /blog/index.php [L]

    acho que o problema ocorre porque não fica um htacess muito genérico para todos os sites, será que rola de colcoar um if ali???

  14. Pingback: Rafael Ramos

  15. Pingback: Rafael Ramos

  16. Tenho alguns dominios hospedados na kinghost, um sistema bem enrolado por não ter cpanel.

    Minha duvida é a seguinte, tenho 3 dominios:
    dominio1, dominio2 e dominio3.

    O dominio1 é o principal, e os demais estao estacionados no dominio principal.

    é possivel criar um redirecionamento no htacess, que redirecione os dominios 2 e 3 para o principal, mesmo esses dominios sendo estacionados?

  17. Rodrigo, encontrei esse post enquanto buscava pela solução do seguinte problema:
    tenho a página um.com.br e dois.com.br

    Eu quero acessar no browser o domínio um.com.br e o browser exibir o conteúdo de dois.com.br sem alterar a URL original (um.com.br).
    Há como fazer isso pelo arquivo .htaccess ou devo recorrer às configurações de registros do tipo CNAME, DNS, etc? Obrigado.

  18. pessoal eu estou com um problema no meu site que estou utilizando o HTACCESS que é o seguinte…
    ex:
    entro em uma pagina de lista de produtos http://www.produtos.com.brprodutos111255
    ai nessa pagina tem o link pros supermercados que tem esse produto
    e SOMENTE no IE se comporta estranho esse segundo link ficando assim http://www.produtos.com.brprodutos11supermercados...
    quando era pra ser : http://www.produtos.com.brsupermercados12

    OBS: ambas listas são montadas na mesma página .php

    eu nao consegui achar o porque … alguem sabe me dizer ?

    Sou novato em HTACCESS ainda. Obrigado!
    Se possivel me responda mandando um email para: mvinni@globo.com
    será uma grande ajuda!

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>