Comment rediriger www vers non-www dans Route53?


24

J'héberge mon site sur domain.com.

Mes entrées DNS dans Route53 sont les suivantes:

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

Je voudrais rediriger le trafic de www.domain.comvers domain.com, car actuellement cela ne renvoie qu'un 404. Cette question sur SO suggérait un PTRenregistrement, et j'ai ajouté que:

www.domain.com  PTR     domain.com           300

mais ça n'a pas marché. Que dois-je faire?


3
Si vous souhaitez réellement envoyer une redirection HTTP, vous ne pouvez pas le faire dans DNS. Si vous ne vous souciez pas de la modification de l'URL dans la barre d'adresse, utilisez un CNAME comme le suggère pauska. Si vous vous en souciez, vous aurez besoin d'un serveur Web quelconque pour envoyer le 301. Certains fournisseurs DNS l'ont comme service, mais je ne pense pas que Route53 le fasse.
cjc

@cjc Je me fiche de l'URL dans la barre d'adresse.
fredley

Réponses:


22

Le PTR sert à configurer des recherches IP inversées, et ce n'est pas quelque chose dont vous devriez vous soucier. Retirez-le.

Ce dont vous avez besoin est un CNAME pour www:

www.domain.com  CNAME  domain.com 300

15
Ce n'est pas une redirection. Dans le cas, vous devez définir l'URL de rappel dans une sorte de service tiers, la solution ci-dessus ne fonctionnera pas. Par exemple, authentification oAuth (Facebook, Twitter).
Ck-

14

Vous pouvez également définir un ALIAS pour WWW sur un enregistrement de domain.com:

www.domain.com A ALIAS domain.com 300

de sorte que vos entrées DNS finales seraient les suivantes:

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)

Je l'ai fait mais cela ne fonctionne toujours pas. Autre chose qui pourrait être nécessaire?
Utpal - Ur Best Pal

Après avoir ajouté l'alias, j'ai dû supprimer le cache du navigateur pour que cela fonctionne.
trees_are_great

Et cela dépend du TTL précédent de votre DNS.
Hardeep Singh

3

Une fois que vous avez un CNAME pour example.com et www.example.com, cette configuration nginx redirigera le trafic de http vers https ainsi que tout www.example.com vers 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;
}

où mon serveur réel est en place et écoute sur le port 3000 ... cela met également fin à mon TLS mais supprimez simplement la mention de ssl ... caché dans ces fichiers inclus sont mes paramètres nginx pour durcir la boîte


-1

Comme mentionné ci-dessus, ce n'est pas possible avec le DNS standard.

Voici la solution que j'ai utilisée:

  • Configurer S3 avec une redirection de site Web statique vers votre domaine non www
  • Créez une distribution Cloudfront vers votre S3 (en utilisant le domaine S3, pas celui suggéré dans la saisie semi-automatique par AWS)
  • Ajouter un alias d'enregistrement Route 53 A à la distribution CloudFront

@Thomas voir la réponse modifiée.
natanavra
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.