===================================================
Howto: Redirecionando permanentemente um site para um novo domínio
===================================================
Vejamos o problema:
Eu tinha um site hospedado em um domínio X e o cliente me pediu para alterar o domínio para Y. Sem dúvida essa é uma idéia estúpida, ainda mais quando o site já esta a um bom tempo com o nome de domínio X, pois alterar o endereço de um site sem pensar em todos os usuários que possuem páginas do mesmo em seus favoritos é algo que não deve ocorrer, pois significa perder todos estes antigos usuários.
É possível resolver parcialmente isso realizando um redirecionamento de site, utilizando para isso o status HTTP 301, para identificar que o site mudou permanentemente. Há muitas formas de fazer isso, mas porque não utilizar o Htaccess do Apache, pois a a maioria dos serviços de hospedagem suportam tão configuração. Em primeiro lugar eu tentei isso:
[shell]
RewriteEngine On
RewriteBase /
Redirect 301 / http://novodominio.com.br/
[/shell]
Dessa forma, todas as solicitações para a raiz do antigo domínio serão redirecionadas para a raiz do novo domínio.
Mas ainda temos um problema, ao se tentar acessar algum caminho dentro do domínio antigo ( http://dominioantigo.com.br/caminhoxyz/), muito comum quando se chega ao site através de um buscador, o que aconteceria? Seria exibido um erro 404 (not found), porque o caminho não existe mais.
O que queremos é que se usuário acessar http://dominioantigo.com.br/caminhoxyz/ ele seja redirecionado para http://novodominio.com.br/caminhoxyz/.
Veja como é fácil, basta alterar o Htaccess, assim:
[shell]
RewriteEngine On
RewriteBase /
RedirectMatch 301 (.*)$ http://dominionovo.com.br$1
[/shell]
Com isso em mente e um pouco de conhecimento de .httacces, é possível fazer coisas bem legals, como por exemplo:
[shell]
RewriteEngine On
# Regra para os dias da semana.
# Se o dia atual for maior que 0 (domingo) E menor que 6 (sábado)
RewriteCond %{TIME_WDAY} >0
RewriteCond %{TIME_WDAY} <6
# Verificamos o horário do servidor.
# Se for menor que 8h OU maior que 18h
RewriteCond %{TIME_HOUR}%{TIME_MIN} <0800 [OR]
RewriteCond %{TIME_HOUR}%{TIME_MIN} >1800
# Enviamos a requisição para um outro domínio
RewriteBase /
RedirectMatch 301 (.*)$ http://dominoxyz.com.br$1
# Ou então redireciona para um arquivo no mesmo servidor:
# RewriteRule .* opz.php
# Regra para o sábado.
# Se o dia atual for 6 (sábado)
RewriteCond %{TIME_WDAY} =6
# Verificamos o horário do servidor
# Se for menor que 8h OU maior que 12h
RewriteCond %{TIME_HOUR}%{TIME_MIN} <0800 [OR]
RewriteCond %{TIME_HOUR}%{TIME_MIN} >1200
# Enviamos a requisição para o outro domínio
RewriteBase /
RedirectMatch 301 (.*)$ http://dominionovo.com.br$1
# Ou então redirecionamos para um outro arquivo no mesmo servidor:
# RewriteRule .* opz.php
[/shell]