¿Cómo redirecciono www a no www en Route53?

24

Alojo mi sitio en domain.com.

Mis entradas de DNS en Route53 son las siguientes:

domain.com      A       xxx.xxx.xxx.xxx      300
domain.com      NS      stuff.awsdns-47.org  172800
domain.com      SOA     stuff.awsdns-47.org  900

Me gustaría redirigir el tráfico de www.domain.coma domain.com, ya que actualmente solo devuelve un 404. Esta pregunta en SO sugirió un PTRregistro, y agregué que:

www.domain.com  PTR     domain.com           300

Pero no funcionó. ¿Qué debería estar haciendo?

Fredley
fuente
3
Si realmente desea enviar una redirección HTTP, no puede hacerlo dentro de DNS. Si no le importa que cambie la URL en la barra de direcciones, use un CNAME como sugiere pauska. Si le importa, necesitará un servidor web de algún tipo para enviar el 301. Algunos proveedores de DNS tienen esto como un servicio, pero no creo que Route53 lo haga.
cjc
@cjc No me importa la URL en la barra de direcciones.
fredley

Respuestas:

22

PTR es para configurar búsquedas inversas de IP, y no es algo que deba interesarle. Quitarlo

Lo que necesitas es un CNAME para www:

www.domain.com  CNAME  domain.com 300
pauska
fuente
15
Esto no es una redirección. En caso de que tenga que definir la URL de devolución de llamada en algún tipo de servicio de terceros, la solución anterior no funcionará. Por ejemplo, Autenticación oAuth (Facebook, Twitter).
Ck-
14

También puede establecer un ALIAS para WWW en un registro A de domain.com:

www.domain.com A ALIAS domain.com 300

entonces sus entradas finales de DNS serían las siguientes:

domain.com          A       xxx.xxx.xxx.xxx      300
domain.com          NS      stuff.awsdns-47.org  172800
domain.com          SOA     stuff.awsdns-47.org  900
www.domain.com      A       ALIAS domain.com (Hosted Zone ID)
Hardeep Singh
fuente
He hecho esto, sin embargo, todavía no funciona. ¿Algo más que deba hacerse?
Utpal - Ur Best Pal
Después de agregar el alias, necesitaba eliminar el caché del navegador para que esto funcione.
trees_are_great
Y depende del TTL anterior de su DNS.
Hardeep Singh
3

Después de tener un CNAME para example.com y www.example.com, esta configuración de nginx redirigirá el tráfico de http a https, así como todo www.example.com a example.com

server { 

    listen  80 ;

    server_name  example.com, www.example.com;

    rewrite ^/(.*) https://example.com/$1 permanent;
}

server {  #  redirect www to normal domain

    listen       443  ssl ;

    server_name www.example.com;

    include /etc/nginx/myprojname/include/ssl;

    return 301 https://example.com$request_uri;
}

server {

    listen  443 ssl ;

    include /etc/nginx/myprojname/include/ssl;

    server_name example.com;

    include /etc/nginx/snippets/nginx_common_location_443;

    location / {

        proxy_pass http://127.0.0.1:3000/;
    }

    include /etc/nginx/myprojname/include/custom_server_include;
}

donde mi servidor real está activo y escuchando en el puerto 3000 ... esto también termina mi TLS, sin embargo, solo elimine la mención de ssl ... guardado en esos archivos incluidos están mis configuraciones nginx para endurecer la caja

Scott Stensland
fuente
-1

Como se mencionó anteriormente, no es posible con DNS estándar.

Aquí está la solución que usé:

  • Configure S3 con un sitio web estático que redirija a su dominio que no sea www
  • Cree una distribución de Cloudfront a su S3 (usando el dominio S3, no el sugerido en el autocompletado por AWS)
  • Agregue un alias de registro de Route 53 A a la distribución de CloudFront
natanavra
fuente
@Thomas ve la respuesta editada.
natanavra