¿Cómo se puede redirigir un dominio?

Existen varias opciones para redirigir un dominio o subdominio a cualquier otra zona de la propia página web o a una dirección externa. La mayoría de las veces, la redirección se hace a través de .htaccess, PHP, etiquetas meta HTML y JavaScript.

Redirigir un dominio de una web activa

Las redirecciones tienen como función principal notificar a los servidores que el contenido de una página web se ha trasladado de una URL a otra. Esto es fundamental 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 resultados de los motores de búsqueda. Así, al redireccionar una web se le está informando al navegador web o al crawler de que el contenido buscado ha sido trasladado, redireccionándolo automáticamente a la nueva URL. De no ser así, los visitantes de la página web se encontrarían con el mensaje genérico de error 404.

Sobre todo en los proyectos web comerciales, 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 individuales. Así, cuando un artículo no está disponible, los clientes potenciales son simplemente redirigidos a una nueva subpágina con productos similares. Mediante la redirección eficiente de los flujos de visitantes, todo proyecto web está minimizando significativamente la tasa de rebote.

Redireccionar una página web permite poner a disposición el mismo contenido web en diferentes URL, redirigiendo todas las direcciones alternativas al dominio deseado.

¡Dominio GRATIS!

¡Consigue tu dominio gratis con IONOS!

Simple
Seguro
Asistencia 24/7

Tipos de redirecciones de dominios

En general se distinguen dos tipos de redirecciones: aquellas que se llevan a cabo desde el servidor y aquellas basadas en el cliente. Para redireccionar 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 redirección se basa en el cliente, se hace de manera automática sin ningún tipo de notificación. Esto hace que estas últimas no sean compatibles con todos los agentes de usuario, generando así que algunos usuarios permanezcan en la web original sin ser redirigidos al nuevo dominio. Es por ello por lo que se suele recomendar redireccionar una página web desde el servidor. Las soluciones basadas en el cliente se deben usar solo cuando las limitaciones técnicas por parte del servidor impiden la redirección.

Otro tipo de redirección consiste en el reenvío de un dominio sin cambiar la URL, conocido también como reenvío transparente. En este caso, la URL que se muestra al usuario no cambia, aunque el cliente haya sido redireccionado a otro dominio y se muestre el contenido de otra página web. Sin embargo, dado que este tipo de redirección puede causar problemas con la indexación, así como con la visualización de la URL en el navegador, no se recomienda.

Consejo

¿Deseas configurar la redirección de dominios? En el siguiente artículo en el Centro de Ayuda de IONOS aprenderás cómo puedes redirigir un dominio a otro dominio.

Redirecció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 individualmente qué código de estado HTTP debe mostrarse al agente de usuario, caracterizando así las redirecciones como temporales o permanentes. Así, resultan relevantes especialmente dos códigos de estado HTTP, el 301 y el 302:

  • 301 – Moved Permanently: la página solicitada por el agente de usuario estará disponible de manera permanente bajo la URL redireccionada. La antigua URL será, por lo tanto, inválida.
  • 302 – Moved Temporarily: la página solicitada por el agente de usuario está temporalmente disponible bajo la nueva URL. A diferencia de la redirección 301, la antigua dirección sigue siendo válida.

En caso de que no se defina específicamente 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 aconsejable introducir manualmente todos los códigos de estado para evitar errores de indexación como el secuestro de URL. A diferencia de la redirección 301, el código de estado 302 le comunica al crawler que la URL original debe seguir siendo indexada. De mantenerse activa, la URL antigua competirá con la nueva en el índice de los motores de búsqueda.

Redirección .htaccess

.htaccess hace referencia a un tipo de archivo de configuración para el servidor web Apache, con el que es posible asignar permisos de acceso a directorios y archivos. Estos archivos permiten a los propietarios de páginas web realizar los ajustes necesarios en los directorios de un dominio o un subdominio. Una de las funciones del archivo .htaccess consiste en redireccionar un dominio de una URL a otra desde el servidor.

Con la ayuda de código en el archivo .htaccess puedes configurar redirecciones de dominio. Así, al crear un archivo .htaccess con el siguiente código en el directorio principal, todas las visitas desde la URL antigua serán redireccionadas al dominio www.ejemplo.es:

Redirect 301 / http://www.ejemplo.es/
apache

La línea de código comienza con Redirect 301 y especifica, por lo tanto, la información que debe transmitirse 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 contenidos que han sido redireccionados 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á redirigido.

Este método también permite redirigir archivos individuales. El siguiente código muestra una redirección de un dominio a otro con .htaccess:

Redirect 301 /directorio/documento-de-ejemplo.html http://www.ejemplo.es/ejemplo.html
apache

Después del código de estado HTTP 301 se encuentra el directorio que va a ser redirigido de forma permanente (/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 redirección permanente 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]
apache

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 enrutamiento del archivo y denotar la dirección de destino. El símbolo de intercalació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 solicitudes similares. R=301 redirige con el código de estado HTTP 301.

Consejo

En otro artículo de la Digital Guide te presentamos algunos trucos .htaccess.

También puedes encontrar más información sobre mod_rewrite y otros RewriteEngine.

Hay que tener especial cuidado con la configuración .htaccess para redirigir un dominio, pues un error en el código modifica automáticamente los archivos de configuración de la web y puede generar problemas en su funcionamiento. Debido a que las modificaciones son aplicadas inmediatamente después de haber sido guardadas, es recomendable comprobar el código y verificar los cambios antes de guardarlos.

Redirección con PHP

Redireccionar 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 ejemplifica una redirección permanente 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 redirecció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 redirección permanente. Debido a que, por defecto, las redirecciones desde el servidor son temporales, es necesario forzar la redirecció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 posteriores. Para que la redirección por PHP funcione, el bloque de código debe ubicarse al principio, asegurando así que el servidor no mostrará ningún tipo de contenido HTML en la página de redirección.

Redirecciones basadas en el cliente

En caso de que, como consecuencia de problemas técnicos, no sea posible redireccionar una página web desde el servidor, alternativamente se puede usar una solución basada en el cliente. Para este fin se dispone de los meta tags HTML refresh y del JavaScript correspondiente. La desventaja de la redirecció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 referencia explícita a la redirección. Por otra parte, no todos los agentes de usuario soportan la redirección basada en el cliente, por lo que se corre el riesgo de que algunos de los visitantes a la página web no sean redirigidos.

Otra de las desventajas es el efecto generado en la indexación de los motores de búsqueda. Al redireccionar una web desde el cliente usando el código de estado HTTP 301, los buscadores no desindexarán automáticamente de sus resultados 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 redirecciones basadas en el cliente siempre implicarán un retraso que seguramente tendrá un impacto en la tasa de rebote de los visitantes, las redirecciones desde el servidor (que se mantienen invisibles para el usuario con la única diferencia del cambio de dirección en la casilla del navegador) resultan mucho más convenientes.

Redireccionar una página web con el meta tag HTML refresh

La redirección mediante la meta etiqueta HTML se realiza utilizando el atributo http-equiv. Así, para configurar la redirección, es necesario crear un archivo HTML simple con la etiqueta correspondiente en el encabezado de la línea de comandos. Con el fin de informar a los visitantes de la web sobre la redirección, es posible crear un mensaje de texto en el documento HTML (por ejemplo, ¡Nos hemos mudado!). Serás redirigido automáticamente en unos segundos. Una redirecció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 solicitarle al cliente la redirección del dominio. A continuación, se define el atributo del contenido. En el comando anterior, pasados 10 segundos, el usuario será redirigido a la URL de destino www.ejemplo.es.

Redirección con JavaScript

Utilizar JavaScript es otro método sencillo para redireccionar una URL desde el cliente. Al igual que la redirección con la metaetiqueta refresh, la redirección con JavaScript solo debe ser usada como último recurso, pues por motivos de seguridad este script no es soportado por todos los navegadores web. Recuerda, además, que las redirecciones con JavaScript también son un problema para crawlers y usuarios que tengan activados complementos NoScript en sus navegadores. Un ejemplo clásico de redirección a través de JavaScript se verá de la siguiente forma:

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

La importancia en esta secuencia de comandos reside principalmente 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 paréntesis www.ejemplo.es.