Problema:
Você possui diversos domínios hospedados em um servidor Apache e deseja que todos eles sejam redirecionados para um outro domínio.
Solução:
Utilizar o mod_rewrite do apache com as seguintes condições e regra:
RewriteCond %{HTTP_HOST} ^dominio1.com(.*) [OR]
RewriteCond %{HTTP_HOST} ^www.dominio1.com(.*) [OR]
RewriteCond %{HTTP_HOST} ^outrodominio.com(.*) [OR]
RewriteCond %{HTTP_HOST} ^paraquetantodominio.com(.*)
RewriteRule ^/(.*) http://www.dominioprincipal.com/$1 [L,R=301]
Notas:
- Os domínios dominio1.com, www.dominio1.com, outrodominio.com e paraquetantodominio.com devem estar configurados em ServerAlias
- O (.*) é uma expressão regular (ER) que funciona como um coringa: deste ponto em diante a URL pode possuir qualquer seqüência de caracteres e ainda assim a condição será válida.
- O $1 na linha RewriteRule diz ao Apache para completar o caminho do domínio. Na verdade ele copia os caracteres que foram substituidos pela expressão regular (.*) que está em ^/(.*) para frente do novo caminho.
- O [L,R=301] significa:
L : Não execute outra regra, esta é a última
R=301 : Retorne ao usuário o código de status HTTP 301 (Moved Permanently). Outros códigos HTTP e mais informações podem ser encontrados aqui. Se você utilizar apenas R o código que será enviado será o 302 (Moved Temporarily). - Recomendo a leitura da página da Apache sobre o mod_rewrite.