Come reindirizzare www a non www in Route53?


24

Ospito il mio sito all'indirizzo domain.com.

Le mie voci DNS in Route53 sono le seguenti:

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

Vorrei reindirizzare il traffico da www.domain.coma domain.com, poiché attualmente questo restituisce solo un 404. Questa domanda su SO ha suggerito un PTRrecord e ho aggiunto che:

www.domain.com  PTR     domain.com           300

ma non ha funzionato. Cosa dovrei fare?


3
Se desideri effettivamente inviare un reindirizzamento HTTP, non puoi farlo all'interno del DNS. Se non ti interessa cambiare l'URL nella barra degli indirizzi, usa un CNAME come suggerisce pauska. Se ti interessa, avrai bisogno di un server web di qualche tipo per inviare il 301. Alcuni provider DNS hanno questo come servizio, ma non credo che Route53 lo faccia.
cjc,

@cjc Non mi interessa l'URL nella barra degli indirizzi.
Fredley,

Risposte:


22

PTR serve per impostare ricerche IP inverse e non è qualcosa di cui dovresti preoccuparti. Rimuoverla.

Ciò di cui hai bisogno è un CNAME per www:

www.domain.com  CNAME  domain.com 300

15
Questo non è un reindirizzamento. Nel caso, devi definire l'URL di callback in una sorta di servizio di terze parti, la soluzione sopra non funzionerà. Ad esempio l'autenticazione oAuth (Facebook, Twitter).
Ck-

14

Puoi anche impostare un ALIAS per WWW su Un record di domain.com:

www.domain.com A ALIAS domain.com 300

quindi le voci DNS finali sarebbero le seguenti:

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)

L'ho fatto, tuttavia non funziona ancora. Qualcos'altro che potrebbe essere richiesto di essere fatto?
Utpal - Ur Best Pal

Dopo aver aggiunto l'alias, ho dovuto eliminare la cache del browser per farlo funzionare.
trees_are_great

E dipende dal TTL precedente del tuo DNS.
Hardeep Singh,

3

Dopo avere un CNAME sia per example.com che per www.example.com, questa configurazione di nginx reindirizzerà il traffico da http a https e tutto il sito 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;
}

dove il mio server attuale è attivo e in ascolto sulla porta 3000 ... questo termina anche il mio TLS, tuttavia basta rimuovere la menzione di ssl ... nascosta in quei file inclusi sono le mie impostazioni nginx per rafforzare


-1

Come accennato in precedenza, non è possibile con DNS standard.

Ecco la soluzione che ho usato:

  • Installa S3 con reindirizzamento del sito Web statico al tuo dominio non www
  • Crea una distribuzione Cloudfront sul tuo S3 (usando il dominio S3, non quello suggerito nel completamento automatico di AWS)
  • Aggiungi un route 53 A Alias ​​record alla distribuzione CloudFront

@Thomas vedi la risposta modificata.
natanavra,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.