Problema: Redirigir Dominios y Subdominios con Nginx
Redirigir un dominio y sus subdominios puede ser complicado, especialmente cuando se usa Nginx como servidor web. Este proceso implica configurar ajustes para enviar todo el tráfico desde el dominio original y sus subdominios al destino deseado.
Solución: Configurar Nginx para la Redirección de Dominios
Configurar el Bloque de Servidor de Nginx
Para redirigir un dominio y sus subdominios usando Nginx, necesitas crear un bloque de servidor en tu archivo de configuración de Nginx. Este bloque definirá las reglas para manejar las solicitudes a tu dominio.
Abre tu archivo de configuración de Nginx y añade un nuevo bloque de servidor:
server {
# La configuración irá aquí
}
Define la directiva server_name para especificar qué dominio y subdominios debe manejar este bloque. Nginx permite hacer coincidir tanto el dominio principal como todos los subdominios usando un prefijo de punto:
server {
server_name .midominio.ejemplo;
# Seguirá más configuración
}
Esta configuración de server_name coincidirá con "midominio.ejemplo" y cualquier subdominio de "midominio.ejemplo".
Implementar la Regla de Redirección
Ahora puedes añadir la regla de redirección. Nginx ofrece formas de implementar redirecciones, pero un método común es usar la directiva rewrite.
Añade esta línea dentro de tu bloque de servidor:
server {
server_name .midominio.ejemplo;
rewrite ^ http://www.otrodoministinto.ejemplo$request_uri? permanent;
}
Esta regla rewrite hace lo siguiente:
- El símbolo ^ coincide con el inicio del URI.
- http://www.otrodoministinto.ejemplo es el dominio de destino para la redirección.
- $request_uri captura el URI de la solicitud original y lo añade al nuevo dominio.
- El ? al final elimina cualquier cadena de consulta de la solicitud original.
- La bandera permanent crea una redirección 301 (permanente).
Esta configuración redirigirá todas las solicitudes a "midominio.ejemplo" o cualquiera de sus subdominios a "www.otrodoministinto.ejemplo", manteniendo la ruta original y eliminando cualquier cadena de consulta.
Al configurar Nginx de esta manera, creas un sistema de redirección que maneja tanto tu dominio principal como todos sus subdominios.
Consejo: Probar Tu Configuración de Nginx
Después de hacer cambios en tu configuración de Nginx, es importante probarla antes de recargar el servidor. Puedes usar el siguiente comando para verificar errores de sintaxis:
nginx -t
Si la prueba es exitosa, puedes recargar Nginx para aplicar los cambios:
nginx -s reload
Métodos Alternativos para la Redirección en Nginx
Usar la Directiva Return
Para versiones de Nginx 0.9.1 y superiores, puedes usar la directiva return para crear una regla de redirección más simple. Este método es claro y eficiente.
Para implementarlo, modifica tu bloque de servidor de la siguiente manera:
server {
server_name .midominio.ejemplo;
return 301 http://www.otrodoministinto.ejemplo$request_uri;
}
Esta configuración hace lo mismo que el método rewrite, pero con una sintaxis más corta. El código de estado 301 indica una redirección permanente, y $request_uri mantiene la ruta original en la nueva URL.
Consejo: Usa HTTPS para Redirecciones Seguras
Al configurar redirecciones, es una buena práctica usar HTTPS en lugar de HTTP para la URL de destino. Esto mejora la seguridad y ayuda a mantener el cifrado SSL/TLS. Aquí tienes un ejemplo:
server {
server_name .midominio.ejemplo;
return 301 https://www.otrodoministinto.ejemplo$request_uri;
}
Manejo de Subdominios con Comodín
Para manejar todos los subdominios, incluyendo los futuros, puedes usar patrones comodín en tu directiva server_name. Este método permite nuevos subdominios sin cambiar la configuración.
Así es como se configura:
server {
server_name midominio.ejemplo *.midominio.ejemplo;
return 301 http://www.otrodoministinto.ejemplo$request_uri;
}
Esta configuración captura tanto el dominio principal como cualquier subdominio, redirigiendo todos al dominio de destino. El comodín (*) coincide con cualquier prefijo de subdominio, permitiendo flexibilidad en tu configuración de redirección.





