Google recomienda hacer las redirecciones de dominios por el servidor por que esta función le corresponde al servidor (con apache) y no a las aplicaciones tipo php o html.
El objetivo de este tutorial es que al escribir http://dominioviejo.com vaya automaticamente a http://www.dominionuevo.com manteniendo todos los nombres de las páginas y los enlaces.
Los pasos:
1. Asegurate de que tienes 2 sitios web - el sitio antiguo y el nuevo sitio, y que se encuentran en diferentes cuentas (no tiene que estar en IP diferente o diferentes máquinas). Sobre todo que el archivo .htaccess no sea el mismo por que ese es el que vamos a modificar.
2. Tu sitio principal (propio o canónico) debe apuntar hacia el nuevo sitio usando DNS. Todos los viejos dominios deben apuntar hacia el antiguo sitio mediante DNS.
Es decir que Los DNS de http://www.dominionuevo.com apuntan al nuevo servidor con el contenido del sitio nuevo y los viejos dominios hacia el sitio antiguo por DNS.
3. Encuentra el archivo .htaccess en la raíz de tu antigua cuenta. Sí, comienza con un “.” Vamos a trabajar con este archivo. El nuevo sitio no necesita usar esto por que la redirección viene del dominio viejo.
4. Descarga el archivo .htaccess y ábrelo en un editor de texto solamente.
5a. Si tienes el mod_rewrite instalado en el apache, agrega este código:
Options + FollowSymLinks
RewriteEngine on
RewriteCond% {} HTTP_HOST! ^ NEWDOMAIN \ com.
RewriteRule ^ (. *) $ Http://www.newdomain.com/ $ 1 [R = 301, L]
5b. Si no tienes instalado el mod_rewrite, que realmente deberías, yno se puede instalar, entonces puedes utilizar este código en su lugar:
RedirectMatch 301 ^ (. *) $ Http://www.newdomain.com
6. Luego, sube el archivo a la carpeta raíz y prueba tu nueva redirección.
Opcional: Puedes asegurarte que hace la redirección 301 correcta con un HTTP Header viewer.
Puedes leer mas técnicas de redirección aquí: http://www.mcanerin.com/en/articles/301-redirect-apache.asp