Configuración de Nginx para redirigir www a non-www
Los propietarios de sitios web suelen usar una única versión de su dominio para mejorar el SEO y la experiencia del usuario. Redirigir la versión www de un dominio a la versión non-www (o viceversa) es común. Para los usuarios de Nginx, configurar esta redirección requiere una configuración específica. Este artículo explica cómo redirigir www a non-www usando Nginx, ayudándote a mantener una estructura de dominio consistente para tu sitio web.
Configuración de Nginx para la redirección de www a non-www
Creación de un bloque de servidor para la redirección
Para configurar un bloque de servidor para la redirección de www a non-www:
-
Crea un nuevo archivo de configuración:
sudo nano /etc/nginx/sites-available/example.com -
Añade este bloque de servidor:
server { listen 80; server_name www.example.com example.com; # Otras configuraciones del servidor van aquí } -
Usa la directiva
server_namepara especificar tanto la versión www como la non-www de tu dominio. -
Guarda el archivo y sal del editor de texto.
-
Crea un enlace simbólico para habilitar el sitio:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ -
Elimina la configuración por defecto de Nginx:
sudo rm /etc/nginx/sites-enabled/default
Esta configuración forma la base para implementar la redirección de www a non-www en Nginx.
Implementación de la redirección 301 en Nginx
Escritura de la regla de redirección
Para redirigir www a non-www usando Nginx, utiliza la directiva return con un código de estado 301. Esto indica una redirección permanente. Añade esta regla a tu bloque de servidor:
server {
listen 80;
server_name www.example.com example.com;
if ($host = www.example.com) {
return 301 $scheme://example.com$request_uri;
}
# Otras configuraciones del bloque de servidor
}
Esta regla verifica si el host solicitado es la versión www de tu dominio. Si lo es, redirige a la versión non-www, manteniendo el esquema original (http o https) y cualquier parámetro de URL.
Prueba de la configuración de Nginx
Después de escribir la regla de redirección, prueba tu configuración de Nginx para detectar errores:
-
Ejecuta este comando:
sudo nginx -t -
Si no hay errores, verás un mensaje indicando que la prueba de configuración fue exitosa.
-
Si hay errores, revisa tu archivo de configuración y corrige cualquier problema.
Una vez que la prueba de configuración pase, recarga Nginx para aplicar los cambios:
sudo systemctl reload nginx
Este comando recarga Nginx sin detener las conexiones activas. Tu redirección de www a non-www debería funcionar ahora. Pruébala visitando tu dominio www en un navegador web para confirmar que redirige a la versión non-www.
Consideraciones adicionales para la redirección
Manejo de conexiones HTTPS
Para manejar conexiones HTTPS, configura certificados SSL y actualiza tu bloque de servidor Nginx:
-
Obtén un certificado SSL para tu dominio.
-
Instala el certificado SSL en tu servidor.
-
Actualiza tu bloque de servidor Nginx para soportar HTTPS:
server {
listen 80;
listen 443 ssl;
server_name www.example.com example.com;
ssl_certificate /ruta/a/tu/certificado.crt;
ssl_certificate_key /ruta/a/tu/certificado.key;
if ($host = www.example.com) {
return 301 https://example.com$request_uri;
}
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
# Otras configuraciones de SSL y servidor
}
Esta configuración redirige el tráfico HTTP y HTTPS de www a non-www, y usa HTTPS para todas las conexiones.
Configuración DNS para dominios www y non-www
Para configurar DNS para dominios www y non-www:
-
Crea un registro A para tu dominio non-www (example.com) apuntando a la dirección IP de tu servidor.
-
Configura un registro CNAME para el subdominio www (www.example.com) apuntando a tu dominio non-www.
Ejemplo de registros DNS:
example.com. A 123.45.67.89
www.example.com. CNAME example.com.
Después de hacer cambios en DNS, permite tiempo para la propagación. Esto puede tomar hasta 48 horas, pero a menudo ocurre en unas pocas horas. Usa herramientas de búsqueda DNS en línea para verificar el estado de propagación de tu dominio.
Al manejar conexiones HTTPS y configurar DNS, creas un sistema de redirección seguro para tus dominios www y non-www.
Solución de problemas comunes de redirección
Manejo de bucles de redirección
Los bucles de redirección ocurren cuando las redirecciones llevan de vuelta a la URL original, creando un ciclo. Para encontrar y corregir redirecciones circulares:
-
Usa comprobadores de redirección en línea o herramientas de desarrollador del navegador para detectar bucles.
-
Revisa tus archivos de configuración de Nginx en busca de reglas de redirección conflictivas.
-
Busca redirecciones en tu sistema de gestión de contenidos o archivos .htaccess.
Para encontrar problemas de redirección en los registros del servidor:
-
Accede a los registros de error de Nginx:
sudo tail -f /var/log/nginx/error.log -
Busca entradas de redirección repetidas o mensajes de error.
-
Utiliza herramientas de análisis de registros para encontrar patrones en el comportamiento de redirección.
Optimización de la redirección para motores de búsqueda
Para ayudar a los motores de búsqueda a entender tus redirecciones:
-
Usa redirecciones 301 (permanentes) para www a non-www. Verifica esto en tu configuración de Nginx:
return 301 $scheme://example.com$request_uri; -
Actualiza tu mapa del sitio XML:
- Elimina las URLs www
- Añade las URLs non-www
- Envía el mapa del sitio actualizado a los motores de búsqueda
-
Cambia tu archivo robots.txt:
- Usa la versión non-www en la directiva Sitemap
- Ejemplo:
Sitemap: https://example.com/sitemap.xml
-
Usa Google Search Console para:
- Establecer tu versión de dominio preferida
- Verificar errores de rastreo relacionados con redirecciones
Al corregir bucles de redirección y optimizar para motores de búsqueda, puedes mejorar el rendimiento de tu sitio web y su visibilidad en las búsquedas.





