¿Cómo utilizar Nginx para redirigir a otra URL?

La redirección HTTP o Nginx redirects es una técnica utilizada para enviar a los usuarios y navegadores desde una dirección web hacia otra. Se utiliza con frecuencia cuando un sitio cambia su estructura o su dominio. Existen varios tipos de redirecciones, y cada una comunica algo diferente al navegador sobre el tipo de cambio realizado.

Los dos tipos más utilizados son:

Redirecciones temporales (código de estado HTTP 302):
Son ideales cuando el contenido se traslada de manera temporal. Por ejemplo, durante tareas de mantenimiento, puedes redirigir a los usuarios a una página provisional que explique la interrupción del servicio.

Redirecciones permanentes Nginx (código de estado HTTP 301):
Indican a los navegadores y motores de búsqueda que una página se ha trasladado de forma definitiva. Se utilizan comúnmente al migrar a un nuevo dominio o al reestructurar el sitio de manera permanente.

En esta guía aprenderás cómo configurar ambos tipos de redirecciones usando NGINX y encontrarás ejemplos prácticos para escenarios comunes.

Requisitos previos

Antes de comenzar este tutorial, asegúrate de contar con lo siguiente:

  • Un servidor con NGINX instalado y correctamente configurado para alojar tu(s) sitio(s) web.
  • Si necesitas ayuda con la instalación, puedes consultar las guías disponibles para sistemas como Ubuntu 22.04, Debian o CentOS.

¿Qué es un Nginx Redirect?

En NGINX, una redirección es una funcionalidad del lado del servidor que permite enviar solicitudes entrantes desde una URL hacia otra. Las redirecciones son fundamentales cuando se actualiza la estructura del sitio, se cambia de dominio o se necesita forzar un formato de URL coherente.

NGINX admite diferentes tipos de redirecciones, siendo las más comunes:

  • Permanentes (301)
  • Temporales (302)

Las redirecciones se configuran dentro del server block de NGINX (también conocido como virtual host o archivo vhost).

Casos de uso habituales:

  • Redirigir tráfico HTTP a HTTPS para conexiones seguras
  • Forzar el uso de la versión www o non-www
  • Definir reglas de redirección temporal o permanente basadas en patrones de URL

Esto permite controlar el flujo de tráfico y mejorar la seguridad, el SEO y la experiencia del usuario.

¿Cómo redirige Nginx a otra URL?

NGINX permite crear redirecciones mediante la directiva integrada rewrite, disponible por defecto. Se puede utilizar para definir redirecciones temporales y permanentes especificando un patrón y la URL de destino.

Ejemplo 1: Redirección temporal de una página específica

server {
listen 80;
server_name example-site.com;
location /old-page {
rewrite ^/old-page$ /maintenance.html redirect;
}
}

Esto configura una redirección temporal (302), útil cuando una página no está disponible por un período corto, como durante mantenimiento.

Ejemplo 2: Redirección temporal de todo el tráfico a otro dominio

server {
listen 80;
server_name blog.example.com;
rewrite ^/(.*)$ https://archive.example.net/$1 redirect;
}

Esta configuración enviará cada solicitud al nuevo dominio conservando la misma ruta como redirección temporal.

Ejemplo 3: Redirección permanente de HTTP a HTTPS

server {
listen 80;
server_name mysite.org;
return 301 https://$host$request_uri;
}

Esta es una práctica recomendada para mejorar la seguridad y el posicionamiento SEO.

Ejemplo 4: Redirección permanente de non-WWW a WWW

server {
listen 80;
server_name example.org;
return 301 http://www.example.org$request_uri;
}

Esto garantiza que usuarios y motores de búsqueda accedan siempre al dominio preferido.

Redirección a un nuevo dominio

Cuando migras tu sitio a un nuevo dominio, es importante no dejar el anterior inactivo. Sin redirección, los enlaces guardados, enlaces externos o páginas indexadas generarán errores, lo que puede afectar negativamente el tráfico y el SEO.

Supongamos que tienes dos server blocks configurados:

Dominio antiguo: /etc/nginx/sites-available/domain1.com

server {
listen 80;
server_name domain1.com;
# Existing configuration
}

Dominio nuevo: /etc/nginx/sites-available/domain2.com

server {
listen 80;
server_name domain2.com;
# New site setup
}

Aplicando la redirección permanente

Ahora, debe modificar la configuración del dominio antiguo para enviar todo el tráfico al nuevo dominio mediante un redireccionamiento permanente:

server {
listen 80;
server_name domain1.com;
rewrite ^/(.*)$ https://domain2.com/$1 permanent;
}

En esta configuración:

  • La expresión regular ^/(.*)$ captura todo lo que sigue después de la raíz (/).
  • $1 inserta esa ruta capturada en la nueva URL.
  • La palabra permanent indica a NGINX que envíe un código HTTP 301, interpretado como traslado definitivo por navegadores y motores de búsqueda.

Por ejemplo, una solicitud a http://domain1.com/contact.html se redirigirá automáticamente a https://domain2.com/contact.html.

Recargar la configuración de Nginx

Después de realizar los cambios, valida y recarga la configuración:

$ sudo nginx -t
$ sudo systemctl reload nginx

Esto asegura que la nueva regla esté activa.

Conclusión

Ahora sabes cómo configurar redirecciones en NGINX. Es importante elegir correctamente entre redirección permanente o temporal, ya que una selección incorrecta puede afectar el SEO.

Las redirecciones Nginx también son útiles para forzar HTTPS y estandarizar URLs, como añadir www. Cuando se utilizan correctamente, ayudan a mantener el tráfico mientras permiten modificar la estructura del sitio con flexibilidad.

Para información más detallada, consulta la documentación oficial de NGINX, especialmente las secciones sobre el módulo rewrite y las guías de redirección.

BlueVPS ofrece potentes servidores VPS con acceso root completo vía RDP, lo que proporciona control administrativo total al elegir un servidor basado en Windows. Nuestras soluciones VPS incluyen SSD empresariales de alto rendimiento de marcas como Samsung, Kingston e Intel, garantizando almacenamiento rápido y fiable.

BlueVPS facilita la escalabilidad: puedes ampliar los recursos del servidor rápidamente cuando tus necesidades crezcan, con un tiempo de inactividad mínimo. Disfruta de un hosting VPS flexible y robusto adaptado a tus exigencias.

Descubre un hosting VPS fiable y escalable con acceso root completo en BlueVPS.

Blog