Redireccionar dominios con .htaccess

Redireccionar dominios con .htaccess
Suele ser común que una web tenga varios dominios apuntando a ella, como .es, .com, .net, etc. y que solo nos interese mostrar siempre el mismo dominio, independientemente del que teclee el usuario, por ejemplo el .com (o cualquier otro), o que a su vez google solo indexe direcciones del dominio elegido.

Suponemos que nuestra web se encuentra alojada en un servidor con apache y con el mod-rewrite activo, y que por tanto podemos editar el fichero .htaccess que se encuentra en la raíz de nuestra web.

Lo primero es añadir la siguiente línea a nuestro .htaccess, para activar el motor de reescritura de direcciones:
RewriteEngine On
Ahora vamos a ir explicando cada caso particular con ejemplos, donde nuestro dominio principal sera “midominio.com”. Por ejemplo si lo que queremos es que cualquier persona que teclee nuestro dominio sin la triple w (como midominio.com), le aparezca automáticamente la dirección con las tres w (www.midominio.com), debemos hacer lo siguiente:
RewriteCond %{HTTP_HOST} ^midominio.com$ [NC]
RewriteRule ^(.*)$ http://www.midominio.com/ [R=301,L]
De esta forma indicamos una condición con la sentencia RewriteCond, para que cuando el dominio recibido, indicado por la variable de servidor HTTP_HOST, se corresponda con midominio.com, siendo la comprobación insensitiva, es decir ignorando mayúsculas o minúsculas, entonces se ejecute las reglas siguientes indicadas por sentencias RewriteRule. Es decir, cuando se cumple una condición se ejecutan todas las reglan que la preceden hasta encontrar una regla que lleve el flag L, el cuál indica que es la última regla. En nuestro caso solo necesitamos una regla, por ello le incluimos el flag L, y lo que hace dicha regla es cambiar la dirección recibida por http://www.midominio.com, con una redirección de tipo 301.

Optamos por una redirección 301, puesto que es la forma más eficiente de indicar a los motores de busqueda que la ruta especificada ha sido movida de forma permanente. Sin que dicha redirección afecte a los rankins de nuestra página, por tanto se realiza de forma transparente.

Ahora para lograr redireccionar cualquier dominio a nuestro dominio principal (en este caso el .com), hacemos lo siguiente (suponiendo que tenemos registrados el .es y .net también):
RewriteCond %{HTTP_HOST} ^www.midominio.es$ [NC]
RewriteRule ^(.*)$ http://www.midominio.com/ [R=301,L]
RewriteCond %{HTTP_HOST} ^midominio.es$ [NC]
RewriteRule ^(.*)$ http://www.midominio.com/ [R=301,L]

RewriteCond %{HTTP_HOST} ^www.midominio.net$ [NC]
RewriteRule ^(.*)$ http://www.midominio.com/ [R=301,L]
RewriteCond %{HTTP_HOST} ^midominio.net$ [NC]
RewriteRule ^(.*)$ http://www.midominio.com/ [R=301,L]
Siendo las 4 primeras líneas para el dominio .es, y las últimas 4 para el dominio .net. Las 2 primeras de la parte del dominio.es se encargan del dominio con la triple w, y las dos siguiente del dominio sin la triple w.

Finalmente si lo que queremos es redireccionar una página antigua a una nueva, lo que tenemos que hacer es:
redirect 301 /antiguo/antiguo.html http://www.midominio.com/nuevo.html
De esta forma cuando se intente acceder a dicha página antigua se redireccionará automáticamente a la nueva página, y sin afectar al ranking que tuviera para los buscadores.

Comentarios

Comentario de daniel - 25 de Enero de 2013 - 22:27
me salvaste la vida... primero tuve mi sitio en .com, pero despues por esas cosas de la vida y desciciones de mi proveedor de hosting, al comprar un paquete con .net, me pasaron por defecto todos los archivos a .net. entonces, no me actualizaba por completo el .com me volvi loco hasta encontrar tu articulo... cambie el .htaccess, y solucion... ahora me redirecciona en un milisegundo a .net y soy feliz... gracias amigo.... a un detalle, hace menos de un mes que aprendi de cero a modificar codigo...
Comentario de Agustín - 15 de Febrero de 2013 - 22:39
Muchas gracias. Muy bueno tu post. Útil, pero también interesante. Saludos!
Comentario de Sevi - 21 de Marzo de 2013 - 10:21
Muchas gracias, llevo buscando una solución que funcionara bien con mi servidor y tu artículo ha sido el unico capaz de ayudarme :)
Comentario de Abraham - 08 de Abril de 2013 - 05:04
¡Hola! Tengo una mega duda y ojalá pudiera usted echarme una mano en esto, le platico: Utilicé sus datos para redireccionar a otra carpeta, mi htacees sólo tiene: RewriteEngine On redirect 301 /index.php http://www.midominio.com/index.php Pero tengo muchos links en las redes sociales que todavía apuntan a la antigua web, la cual está en el índice de mi Public_html, mi pregunta es: ¿Puedo configurar algo para que esa información pueda seguir siendo vista por medio de los links que he publicado en las redes sociales? Muchísimas gracias por la ayuda brindada con este artículo y gracias de antemano por cualquier respuesta a mi pregunta. ¡Saludos!
Comentario de Roger - 07 de Agosto de 2013 - 15:12
Muchas fue usted el unico que pudo darme una respuesta certera. Ni los del soporte de Dattatec. Saludos
Comentario de Serchi - 20 de Noviembre de 2013 - 11:21
Miles de gracias!
Comentario de miguel - 22 de Febrero de 2014 - 13:18
quiero ver la pagina original .com pero el navegador siempre me manda a .es ¿Como puedo ver las dos paginas? gracias
Comentario de Andrés - 12 de Septiembre de 2014 - 01:51
Gracias colega! más claro no puede ser!
Comentario de exor - 13 de Diciembre de 2014 - 12:02
Gracias por este tutorial. Clarísimo y muy útil.
Comentario de tomas - 28 de Enero de 2015 - 18:35
lo hago, pero cuando quiero entrar al www.nuevodominioredirigido.com/wp-admin para editar la web en wordpress, no me deja...que podra ser?
Comentario de Alberto - 26 de Enero de 2016 - 14:22
Muchas gracias!!!
Ha habido un error en el envío
Comentario enviado. Será revisado por la moderación antes de ser publicado.

Deja tu comentario

Tu nombre:
Tu email:
Tu comentario: