Route53でwwwをwww以外にリダイレクトするにはどうすればよいですか?


24

サイトをでホストしていますdomain.com

Route53のDNSエントリは次のとおりです。

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

現在、これは404を返すだけなwww.domain.comのでdomain.com、からにトラフィックをリダイレクトしたいと思います。SO に関するこの質問は、PTRレコードを提案し、それを追加しました:

www.domain.com  PTR     domain.com           300

しかし、うまくいきませんでした。私は何をすべきですか?


3
実際にHTTPリダイレクトを送信する場合、DNS内でそれを行うことはできません。アドレスバーのURLの変更を気にしない場合は、pauskaが示唆するようにCNAMEを使用します。気にする場合は、301を送信するために何らかのWebサーバーが必要になります。一部のDNSプロバイダーはこれをサービスとして提供していますが、Route53がこれを行うとは思わない。
cjc

@cjcアドレスバーのURLは気にしません。
フレドリー

回答:


22

PTRは逆IPルックアップを設定するためのものであり、気にする必要のあるものではありません。それを除く。

必要なのはwwwのCNAMEです:

www.domain.com  CNAME  domain.com 300

15
これはリダイレクトではありません。場合によっては、何らかのサードパーティサービスでコールバックURLを定義する必要があります。上記のソリューションは機能しません。たとえば、oAuth(Facebook、Twitter)認証。
Ck-

14

WWWのエイリアスをdomain.comのAレコードに設定することもできます。

www.domain.com A ALIAS domain.com 300

最終的なDNSエントリは次のようになります。

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)

私はこれを行いましたが、まだ機能していません。他にやらなければならないことはありますか?
Utpal-ウルベストパル

エイリアスを追加した後、これを機能させるにはブラウザーのキャッシュを削除する必要がありました。
trees_are_great

そして、それはあなたのDNSの以前のTTLに依存します。
ハーディプシン

3

example.comとwww.example.comの両方のCNAMEを取得した後、このnginx構成は、httpからhttpsにトラフィックをリダイレクトし、すべてのwww.example.comを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;
}

私の実際のサーバーが稼働し、ポート3000でリッスンしている場合...これもTLSを終了しますが、SSLの記述を削除するだけです...含まれているファイルに隠れているのは、ボックスを強化するためのnginx設定です


-1

前述のように、標準のDNSでは不可能です。

私が使用したソリューションは次のとおりです。

  • 静的なWebサイトをwww以外のドメインにリダイレクトするS3をセットアップします
  • S3へのCloudfrontディストリビューションを作成します(AWSによるオートコンプリートで提案されたものではなく、S3ドメインを使用します)
  • Route 53 AレコードエイリアスをCloudFrontディストリビューションに追加する

@Thomasは編集済みの回答を参照します。
ナタナブラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.