Existen varias opciones para redirigir un dominio o su­b­do­mi­nio a cualquier otra zona de la propia página web o a una dirección externa. La mayoría de las veces, la re­di­re­c­ción se hace a través de .htaccess, PHP, etiquetas meta HTML y Ja­va­S­cri­pt.

Redirigir un dominio de una web activa

Las re­di­re­c­cio­nes tienen como función principal notificar a los se­r­vi­do­res que el contenido de una página web se ha tra­s­la­da­do de una URL a otra. Esto es fu­n­da­me­n­tal si la dirección original recibe enlaces entrantes, si ha sido marcada como favorita en el navegador de un usuario o si cuenta con una posición destacada en los re­su­l­ta­dos de los motores de búsqueda. Así, al re­di­re­c­cio­nar una web se le está in­fo­r­ma­n­do al navegador web o al crawler de que el contenido buscado ha sido tra­s­la­da­do, re­di­re­c­cio­ná­n­do­lo au­to­má­ti­ca­me­n­te a la nueva URL. De no ser así, los vi­si­ta­n­tes de la página web se en­co­n­tra­rían con el mensaje genérico de error 404.

Sobre todo en los proyectos web co­me­r­cia­les, se prefiere evitar esta situación. La mayoría de las tiendas online ofrecen una gama de productos muy amplia y variada, lo que se refleja en una gran cantidad de páginas web in­di­vi­dua­les. Así, cuando un artículo no está di­s­po­ni­ble, los clientes po­te­n­cia­les son si­m­ple­me­n­te re­di­ri­gi­dos a una nueva subpágina con productos similares. Mediante la re­di­re­c­ción eficiente de los flujos de vi­si­ta­n­tes, todo proyecto web está mi­ni­mi­za­n­do si­g­ni­fi­ca­ti­va­me­n­te la tasa de rebote.

Re­di­re­c­cio­nar una página web permite poner a di­s­po­si­ción el mismo contenido web en di­fe­re­n­tes URL, re­di­ri­gie­n­do todas las di­re­c­cio­nes al­te­r­na­ti­vas al dominio deseado.

Dominios web
Compra y registra tu dominio ideal
  • Tu dominio protegido con Ce­r­ti­fi­ca­do SSL Wildcard gratis
  • Función Domain Connect para una co­n­fi­gu­ra­ción DNS si­m­pli­fi­ca­da gratis
  • Registro privado y gratis para mayor seguridad

Tipos de re­di­re­c­cio­nes de dominios

En general se di­s­ti­n­guen dos tipos de re­di­re­c­cio­nes: aquellas que se llevan a cabo desde el servidor y aquellas basadas en el cliente. Para re­di­re­c­cio­nar un dominio desde el servidor, se muestra un código de estado HTTP al agente de usuario (ya sea el navegador web o el crawler). Cuando la re­di­re­c­ción se basa en el cliente, se hace de manera au­to­má­ti­ca sin ningún tipo de no­ti­fi­ca­ción. Esto hace que estas últimas no sean co­m­pa­ti­bles con todos los agentes de usuario, generando así que algunos usuarios pe­r­ma­ne­z­can en la web original sin ser re­di­ri­gi­dos al nuevo dominio. Es por ello por lo que se suele re­co­me­n­dar re­di­re­c­cio­nar una página web desde el servidor. Las so­lu­cio­nes basadas en el cliente se deben usar solo cuando las li­mi­ta­cio­nes técnicas por parte del servidor impiden la re­di­re­c­ción.

Otro tipo de re­di­re­c­ción consiste en el reenvío de un dominio sin cambiar la URL, conocido también como reenvío tra­n­s­pa­re­n­te. En este caso, la URL que se muestra al usuario no cambia, aunque el cliente haya sido re­di­re­c­cio­na­do a otro dominio y se muestre el contenido de otra página web. Sin embargo, dado que este tipo de re­di­re­c­ción puede causar problemas con la in­de­xa­ción, así como con la vi­sua­li­za­ción de la URL en el navegador, no se re­co­mie­n­da.

Consejo

¿Deseas co­n­fi­gu­rar la re­di­re­c­ción de dominios? En el siguiente artículo en el Centro de Ayuda de IONOS apre­n­de­rás cómo puedes redirigir un dominio a otro dominio.

Re­di­re­c­ción desde el servidor

En la mayoría de los casos se utiliza un archivo .htaccess o un script PHP para redirigir un dominio. La ventaja de estos métodos reside en que es posible definir in­di­vi­dua­l­me­n­te qué código de estado HTTP debe mostrarse al agente de usuario, ca­ra­c­te­ri­za­n­do así las re­di­re­c­cio­nes como te­m­po­ra­les o pe­r­ma­ne­n­tes. Así, resultan re­le­va­n­tes es­pe­cia­l­me­n­te dos códigos de estado HTTP, el 301 y el 302:

  • 301 – Moved Pe­r­ma­ne­ntly: la página so­li­ci­ta­da por el agente de usuario estará di­s­po­ni­ble de manera pe­r­ma­ne­n­te bajo la URL re­di­re­c­cio­na­da. La antigua URL será, por lo tanto, inválida.
  • 302 – Moved Te­m­po­ra­ri­ly: la página so­li­ci­ta­da por el agente de usuario está te­m­po­ra­l­me­n­te di­s­po­ni­ble bajo la nueva URL. A di­fe­re­n­cia de la re­di­re­c­ción 301, la antigua dirección sigue siendo válida.

En caso de que no se defina es­pe­cí­fi­ca­me­n­te el código de estado HTTP, el servidor mostrará por defecto un código de estado 302, lo que no siempre es ideal. Por lo tanto, es aco­n­se­ja­ble in­tro­du­cir ma­nua­l­me­n­te todos los códigos de estado para evitar errores de in­de­xa­ción como el secuestro de URL. A di­fe­re­n­cia de la re­di­re­c­ción 301, el código de estado 302 le comunica al crawler que la URL original debe seguir siendo indexada. De ma­n­te­ne­r­se activa, la URL antigua competirá con la nueva en el índice de los motores de búsqueda.

Re­di­re­c­ción .htaccess

.htaccess hace re­fe­re­n­cia a un tipo de archivo de co­n­fi­gu­ra­ción para el servidor web Apache, con el que es posible asignar permisos de acceso a di­re­c­to­rios y archivos. Estos archivos permiten a los pro­pie­ta­rios de páginas web realizar los ajustes ne­ce­sa­rios en los di­re­c­to­rios de un dominio o un su­b­do­mi­nio. Una de las funciones del archivo .htaccess consiste en re­di­re­c­cio­nar un dominio de una URL a otra desde el servidor.

Con la ayuda de código en el archivo .htaccess puedes co­n­fi­gu­rar re­di­re­c­cio­nes de dominio. Así, al crear un archivo .htaccess con el siguiente código en el di­re­c­to­rio principal, todas las visitas desde la URL antigua serán re­di­re­c­cio­na­das al dominio www.ejemplo.es:

Redirect 301 / http://www.ejemplo.es/
apa­che­co­nf

La línea de código comienza con Redirect 301 y es­pe­ci­fi­ca, por lo tanto, la in­fo­r­ma­ción que debe tra­n­s­mi­ti­r­se a partir del código de estado HTTP del servidor. La siguiente parte del código indica que la ruta de acceso guiará al usuario a los co­n­te­ni­dos que han sido re­di­re­c­cio­na­dos en este caso, como lo denota la barra invertida, a la totalidad de la web. Por último, la línea de comandos incluye la dirección completa de destino a la que el agente de usuario será re­di­ri­gi­do.

Este método también permite redirigir archivos in­di­vi­dua­les. El siguiente código muestra una re­di­re­c­ción de un dominio a otro con .htaccess:

Redirect 301 /directorio/documento-de-ejemplo.html http://www.ejemplo.es/ejemplo.html
apa­che­co­nf

Después del código de estado HTTP 301 se encuentra el di­re­c­to­rio que va a ser re­di­ri­gi­do de forma pe­r­ma­ne­n­te (/directorio/documento-de-ejemplo.html), así como la URL de destino (http://www.ejemplo.es/ejemplo.html).

En un servidor Apache con el módulo mod_rewrite activado, la re­di­re­c­ción pe­r­ma­ne­n­te de un dominio a otro se verá de la siguiente manera:

RewriteEngine On
RewriteRule ^directorio/documento-de-ejemplo.html$ http://www.ejemplo.es/ejemplo.html [L,R=301]
apa­che­co­nf

La línea 01 del código activa el módulo mod_rewrite del servidor Apache con el comando RewriteEngine On. La segunda línea comienza con RewriteRule, que se encarga de definir el en­ru­ta­mie­n­to del archivo y denotar la dirección de destino. El símbolo de in­te­r­ca­la­ción (^) y el símbolo del dólar marcan el principio y el final de la ruta, L designa la última regla del mod_rewrite para so­li­ci­tu­des similares. R=301 redirige con el código de estado HTTP 301.

Consejo

En otro artículo de la Digital Guide te pre­se­n­ta­mos algunos trucos .htaccess.

También puedes encontrar más in­fo­r­ma­ción sobre mod_rewrite y otros Re­w­ri­teE­n­gi­ne.

Hay que tener especial cuidado con la co­n­fi­gu­ra­ción .htaccess para redirigir un dominio, pues un error en el código modifica au­to­má­ti­ca­me­n­te los archivos de co­n­fi­gu­ra­ción de la web y puede generar problemas en su fu­n­cio­na­mie­n­to. Debido a que las mo­di­fi­ca­cio­nes son aplicadas in­me­dia­ta­me­n­te después de haber sido guardadas, es re­co­me­n­da­ble comprobar el código y verificar los cambios antes de gua­r­dar­los.

Re­di­re­c­ción con PHP

Re­di­re­c­cio­nar una página web no solo es posible a través de archivos .htaccess. También lo es usando comandos en script PHP (por ejemplo, en el index.php). El siguiente código eje­m­pli­fi­ca una re­di­re­c­ción pe­r­ma­ne­n­te a la URL de destino ficticia www.ejemplo.es.

<?php
header(Status: 301 Moved Permanently);
header(Location: http://www.ejemplo.es);
exit;
?>
php

En la re­di­re­c­ción con PHP, la función header en la línea de código 02 define el código de estado –en este caso el 301 de re­di­re­c­ción pe­r­ma­ne­n­te. Debido a que, por defecto, las re­di­re­c­cio­nes desde el servidor son te­m­po­ra­les, es necesario forzar la re­di­re­c­ción a través del código de estado 301. La URL de destino –en este caso www.ejemplo.es– en la línea de comando 03 también es definida por la función header. La función exit en la línea de comando 04 finaliza el script y evita que se ejecuten códigos po­s­te­rio­res. Para que la re­di­re­c­ción por PHP funcione, el bloque de código debe ubicarse al principio, ase­gu­ra­n­do así que el servidor no mostrará ningún tipo de contenido HTML en la página de re­di­re­c­ción.

Re­di­re­c­cio­nes basadas en el cliente

En caso de que, como co­n­se­cue­n­cia de problemas técnicos, no sea posible re­di­re­c­cio­nar una página web desde el servidor, al­te­r­na­ti­va­me­n­te se puede usar una solución basada en el cliente. Para este fin se dispone de los meta tags HTML refresh y del Ja­va­S­cri­pt co­rre­s­po­n­die­n­te. La de­s­ve­n­ta­ja de la re­di­re­c­ción de dominios basada en el cliente es que el servidor no emite ningún código de estado HTTP al navegador web o al crawler. Esto significa que no se hace re­fe­re­n­cia explícita a la re­di­re­c­ción. Por otra parte, no todos los agentes de usuario soportan la re­di­re­c­ción basada en el cliente, por lo que se corre el riesgo de que algunos de los vi­si­ta­n­tes a la página web no sean re­di­ri­gi­dos.

Otra de las de­s­ve­n­ta­jas es el efecto generado en la in­de­xa­ción de los motores de búsqueda. Al re­di­re­c­cio­nar una web desde el cliente usando el código de estado HTTP 301, los bu­s­ca­do­res no desin­de­xa­rán au­to­má­ti­ca­me­n­te de sus re­su­l­ta­dos el dominio antiguo, lo que quiere decir que el anterior dominio empezará a competir en el ranking con el dominio de destino. Mientras que las re­di­re­c­cio­nes basadas en el cliente siempre im­pli­ca­rán un retraso que se­gu­ra­me­n­te tendrá un impacto en la tasa de rebote de los vi­si­ta­n­tes, las re­di­re­c­cio­nes desde el servidor (que se mantienen in­vi­si­bles para el usuario con la única di­fe­re­n­cia del cambio de dirección en la casilla del navegador) resultan mucho más co­n­ve­nie­n­tes.

Domain checker

Re­di­re­c­cio­nar una página web con el meta tag HTML refresh

La re­di­re­c­ción mediante la meta etiqueta HTML se realiza uti­li­za­n­do el atributo http-equiv. Así, para co­n­fi­gu­rar la re­di­re­c­ción, es necesario crear un archivo HTML simple con la etiqueta co­rre­s­po­n­die­n­te en el en­ca­be­za­do de la línea de comandos. Con el fin de informar a los vi­si­ta­n­tes de la web sobre la re­di­re­c­ción, es posible crear un mensaje de texto en el documento HTML (por ejemplo, ¡Nos hemos mudado!). Serás re­di­ri­gi­do au­to­má­ti­ca­me­n­te en unos segundos. Una re­di­re­c­ción simple de dominios a través de la meta etiqueta HTML refresh se verá de la siguiente forma:

<meta http-equiv=refresh content=10; url=http://www.ejemplo.es/>
html

La meta etiqueta http-equiv se encarga de so­li­ci­tar­le al cliente la re­di­re­c­ción del dominio. A co­n­ti­nua­ción, se define el atributo del contenido. En el comando anterior, pasados 10 segundos, el usuario será re­di­ri­gi­do a la URL de destino www.ejemplo.es.

Re­di­re­c­ción con Ja­va­S­cri­pt

Utilizar Ja­va­S­cri­pt es otro método sencillo para re­di­re­c­cio­nar una URL desde el cliente. Al igual que la re­di­re­c­ción con la me­tae­ti­que­ta refresh, la re­di­re­c­ción con Ja­va­S­cri­pt solo debe ser usada como último recurso, pues por motivos de seguridad este script no es soportado por todos los na­ve­ga­do­res web. Recuerda, además, que las re­di­re­c­cio­nes con Ja­va­S­cri­pt también son un problema para crawlers y usuarios que tengan activados co­m­ple­me­n­tos NoScript en sus na­ve­ga­do­res. Un ejemplo clásico de re­di­re­c­ción a través de Ja­va­S­cri­pt se verá de la siguiente forma:

<script> 
window.location.replace('http://www.ejemplo.es); 
</script>
html

La im­po­r­ta­n­cia en esta secuencia de comandos reside pri­n­ci­pa­l­me­n­te en la línea 02. En el ejemplo, el objeto window.location se utiliza para referirse al nuevo dominio. El comando replace le indica al navegador que debe redirigir al usuario al dominio entre pa­ré­n­te­sis www.ejemplo.es.

Domain checker
Ir al menú principal