Tu sitio responde en example.com, pero al escribir www.example.com el navegador no encuentra nada:
$ curl -I https://www.example.com/
curl: (6) Could not resolve host: www.example.com
En el navegador verás un error de DNS, por ejemplo DNS_PROBE_FINISHED_NXDOMAIN en Chrome. Lo que quieres es que www redirija con un 301 al dominio raíz, que todo vaya por HTTPS y, de paso, tener una dirección como info en tu dominio sin montar un servidor de correo. Este artículo lo resuelve con Cloudflare. El ejemplo supone un sitio servido con Workers o Pages y un dominio .app, pero el procedimiento aplica a cualquier dominio cuyo DNS esté en Cloudflare.
Por qué pasa
- No existe un registro DNS para
www. Si el nombre no resuelve, la petición nunca llega a Cloudflare y ninguna regla puede actuar sobre ella. - Las reglas de redirección solo actúan sobre nombres con proxy. La documentación de Cloudflare indica que tanto Single Redirects como Bulk Redirects requieren que los registros DNS del dominio pasen por el proxy (la nube naranja). Un registro "solo DNS" (nube gris) resuelve directamente a tu servidor y Cloudflare no ve la petición.
- Un nombre que solo redirige no necesita servidor. Cloudflare propone crear un registro con proxy que apunte a una dirección marcador, que no enruta tráfico a ningún origen. Para IPv6 la documentación indica la dirección
100::. El proxy recibe la petición y aplica la redirección. - En un dominio
.appel HTTPS es obligatorio. Google Registry indica que.appestá en la lista de precarga de HSTS, de modo que los navegadores compatibles solo se conectan por HTTPS. Los certificados de Universal SSL de Cloudflare cubren el dominio raíz y los subdominios de primer nivel, y se emiten para los registros con proxy, así quewwwqueda cubierto.
Solución
-
Crea el registro DNS de
www. En el panel de Cloudflare, abre DNS > Records > Add record y completa:Type: AAAA Name: www IPv6: 100:: Proxy: Proxied (nube naranja)Guarda el registro. La documentación de Cloudflare ofrece también una dirección equivalente para registros A, por si prefieres IPv4; búscala en la página enlazada en las referencias.
-
Crea la regla de redirección. Ve a Rules > Redirect Rules (la ruta exacta del menú puede variar) y usa la plantilla "Redirect from WWW to root", o crea la regla a mano con los valores que muestra la documentación:
When incoming requests match (wildcard pattern) Request URL: https://www.* Then Target URL: https://${1} Status code: 301 Preserve query string: activadoCon esta regla,
https://www.example.com/blog/?a=1redirige ahttps://example.com/blog/?a=1. La propia documentación aclara que las peticiones por HTTP y las que no empiezan porwwwno se modifican con esa regla, por eso necesitas el paso siguiente. -
Fuerza HTTPS en el borde. Ve a SSL/TLS > Edge Certificates y activa "Always Use HTTPS". La opción no aparece si el modo de cifrado es "Off". Con ambas piezas,
http://www.example.com/pasa primero a HTTPS y después al dominio raíz, es decir, puede haber dos saltos. -
Evita el bucle
ERR_TOO_MANY_REDIRECTS. Cloudflare recomienda no hacer redirecciones en el servidor de origen. Si el modo SSL/TLS es "Flexible", Cloudflare habla con tu origen por HTTP, y si el origen redirige todo a HTTPS, ambos se devuelven la petición sin fin. La solución es quitar esa redirección del origen o cambiar el modo a "Full" o "Full (strict)" (esto exige un certificado en el origen). Si tu aplicación en Workers o Pages también redirige desde su código, deja cada redirección en un solo lugar. -
Activa Email Routing para recibir correo en tu dominio. En el panel de Cloudflare abre Email Routing (la ubicación en el menú ha cambiado con el tiempo) y selecciona tu dominio. Cloudflare te muestra los registros DNS que va a añadir en el dominio raíz y los crea al completar la configuración:
- tres registros MX que apuntan a servidores de enrutamiento de Cloudflare (
route1,route2yroute3bajomx.cloudflare.net); - un registro TXT de SPF, cuyo valor en la documentación es
v=spf1 include:_spf.mx.cloudflare.net ~all; - un registro TXT de DKIM.
Si el dominio ya tenía registros MX, la documentación indica que Email Routing requiere los MX de Cloudflare, así que debes quitar o actualizar los existentes (y no se puede usar a la vez con servidores de correo externos). Si ya tenías un SPF, fusiónalo en un solo registro en lugar de crear un segundo.
- tres registros MX que apuntan a servidores de enrutamiento de Cloudflare (
-
Añade y verifica la dirección de destino. En Destination Addresses, escribe la bandeja real donde quieres recibir el correo y abre el mensaje de verificación que te envía Cloudflare para confirmarla. Las reglas permanecen desactivadas hasta que el destino esté verificado.
-
Crea la regla de enrutamiento. En Routing Rules, selecciona "Create routing rule", escribe
infoen Email pattern, selecciona tu dominio, define la acción "Send to an email" y el destino verificado. Guarda.
Email Routing sirve para recibir y reenviar correo entrante. Según la documentación, el envío saliente es otra función aparte; para responder desde la dirección info necesitas otro servicio.
Cómo verificar que quedó resuelto
Comprueba la redirección de www sin que influya la caché del navegador:
curl -sI "https://www.example.com/blog/?a=1"
La respuesta debe empezar por HTTP/2 301 (o HTTP/1.1 301, según el cliente) e incluir una cabecera location con https://example.com/blog/?a=1. Para seguir toda la cadena desde HTTP y contar los saltos:
curl -sIL -o /dev/null -w "%{http_code} %{url_effective} %{num_redirects}\n" "http://www.example.com/blog/?a=1"
El resultado final debe ser 200 con la URL del dominio raíz. Con la regla de la plantilla es esperable ver dos saltos. En Windows PowerShell usa curl.exe en lugar de curl.
Para el correo, comprueba que los registros existen:
nslookup -type=MX example.com
nslookup -type=TXT example.com
En PowerShell también sirve Resolve-DnsName example.com -Type MX. Debes ver los tres MX de Cloudflare y un TXT con include:_spf.mx.cloudflare.net. Por último, envía un mensaje a la dirección info de tu dominio desde una cuenta distinta de la de destino (algunos proveedores descartan correo que parece venir de la misma cuenta) y revisa también la carpeta de spam.
Variantes y errores relacionados
La redirección no se ejecuta
Revisa que el registro de www exista y tenga la nube naranja. Si está en "solo DNS", la petición va directa al origen y la regla se omite. Revisa también que la regla coincida: la de la plantilla solo acepta URL que empiezan por https://www..
Sigue saliendo DNS_PROBE_FINISHED_NXDOMAIN justo después de crear el registro
Las respuestas negativas de DNS pueden permanecer en caché durante un tiempo. Espera unos minutos, prueba con otro resolvedor o desde otra red antes de tocar la configuración.
El navegador sigue redirigiendo tras cambiar la regla
Los navegadores pueden conservar una redirección permanente. Prueba con curl o en una ventana privada.
Advertencia de certificado en un subdominio más profundo
Universal SSL cubre el dominio raíz y los subdominios de primer nivel. Un nombre como a.b.example.com necesita otro tipo de certificado.
Redirigir al revés (de la raíz a www)
Cloudflare documenta el caso inverso con la misma estructura: la regla coincide con https://example.com/* y redirige a https://www.example.com/${1}. Elige una sola dirección canónica y no combines ambas reglas.
Resumen
wwwno resuelve porque no tiene registro DNS; crea un registro AAAAwwwcon contenido100::y proxy activado.- Las reglas de redirección de Cloudflare solo actúan sobre nombres con proxy (nube naranja).
- Usa la regla "Redirect from WWW to root" (301, conservando la cadena de consulta) y activa "Always Use HTTPS"; en un dominio
.appel HTTPS es obligatorio. - Evita el bucle de redirecciones: no redirijas en el origen y no uses modo "Flexible" si el origen fuerza HTTPS.
- Email Routing crea los MX y el SPF, exige verificar la dirección de destino y solo gestiona correo entrante.
Comentarios
Publicar un comentario