Amazon Route 53でwww以外のリクエストをwwwにリダイレクトする


44

私はからのすべての要求をリダイレクトするexample.comwww.example.com

できれば、これはDNSレベルで行う必要があります。PTRレコードを使用しようとしましたが、それは単に失敗し、404を返します。

wwww.example.com Elastic Load Balancerのエイリアスです。

これを達成する最も簡単な方法は何ですか?


PTRレコードで何を試しましたか?私は興味がある。
TRIG

投稿者の@flavianは、URLの書き換えではなくDNSの書き換えを要求しました。彼は、URLがどのように見えるかを気にかけないと特に述べました。
pauska

4
@flavianは、DNSでリダイレクトを行いたいと言っています。私の答えは、DNSでそれを行う方法を説明しています。URLをリダイレクトする場合は、URLの書き換えが必要です。DNSとは関係ありません。
pauska

それをする特別な理由はありますか?私はそれをにやります。
nyuszika7h 14

EV SSLのSAN。
フラビアン14

回答:


50

すでにRoute 53を使用している場合は、独自のエイリアス「レコード」を使用してこの問題を解決できます。標準DNSでは、これをまったく行うことができず、Webサイトに301リダイレクトを送信させる必要があります。もちろん、301リダイレクトを送信するか、一部のリクエストがwwwなしで着信するという事実に対処する必要があります(ただし、SEOの理由で301を送信する必要があります)。

おそらくこれを行う最も簡単な方法は、S3バケットをネイキッドドメインの名前で設定し、バケットプロパティを設定してexample.comからwww.example.comにリダイレクトし、次にRoute 53でネイキッドのエイリアスを作成することですそのS3バケットを指すドメイン名。

コメントから

答えを強化するために、これを機能させるために行ったことがあります。

  • バケットを設定する-名前が何であるかは関係なく、パブリックを許可する必要があります。
  • バケットで、[プロパティ]をクリックし、[静的ウェブサイトホスティング]をクリックします。すべてのリクエストを別のホスト名にリダイレクトをクリックして、トラフィックを送信するサイトを入力します。
  • バケット名のエンドポイントをコピーし、Route53コンソールのホストゾーンに移動して、リダイレクトする必要があるURLにエイリアスNoのCNAMEを追加し、その値としてバケットエンドポイントを貼り付けます。

@ michael-hamptonは私が間違っていても修正しますが、S3バケットはパスなしのネイキッドドメイン名のみをリダイレクトしますか?ドメインにS3バケットを正しく追加しましたが、ネイキッドドメインのみをリダイレクトし、パスを持つものはリダイレクトしません。modの書き換えが進むべき道だと思いますか?
ジョンハーディング

@JohnHarding私は知らない。S3を含むほとんどのAmazon AWSサービスはもう使用していません。
マイケルハンプトン

2
答えを強化するために、これを機能させるために行ったのは次のとおりです。-バケットで[プロパティ]をクリックし、[静的ウェブサイトホスティング]をクリックします。すべてのリクエストを別のホスト名にリダイレクトをクリックして、トラフィックを送信するサイトを入力します。-バケット名のエンドポイントをコピーし、Route53コンソールのホストゾーンに移動して、リダイレクトする必要があるURLにエイリアスNoのCNAMEを追加し、バケットエンドポイントをその値として貼り付けます。
NathanQ

4
S3はhttpsをサポートしていないため、これはhttp要求に対してのみ機能します。リクエストhttps://example.comは失敗します。
ハリーキング

作るためhttps://example.comにリダイレクトをhttps://www.example.comあなた悲しげにセットアップすると、静的なHTTPリダイレクトとバケット上の別のCloudFrontのポインティングを必要としますwww.example.comCNAMEクラウドフロント構成のフィールドにapexドメインを追加する必要があることに言及する価値があります
tuhaj

6

DNSエイリアスの場合、DNSにCNAMEまたはAレコードを追加するだけです。ここで私の答えを参照してください:Route53でwwwをwww以外にリダイレクトするにはどうすればよいですか?

URL書き換え(クライアントを別のアドレスにリダイレクトする場合など)の場合は、Webサーバーで何らかの形式のURL書き換えロジックを実行する必要があります。これにはいくつかの方法があり、使用するWebサーバーの種類によって異なります。最も一般的なのは、Apacheでmod_rewriteを使用することです。このサイトにはmod_rewriteに関する質問がたくさんあります。いくつかの検索で必要なものを取得できます。


ちょうど1時間前に内部bind9 srvでCNAMEを使用しましたが、結果はURL書き換えと同じではありません。このCNAMEをブラウザーのアドレスバーに入力すると、正確にそのURLを取得します。CNAMEが指すURLには変更されません。現在、Apache mod_rewriteを使用しており、wwwがないときに301を送信しています。プレフィックス。
キット14

3
リンクする回答は、に送信www.domain.comするためのものdomain.comです。この質問は反対です。を使用しCNAMEたりA記録したりするソリューションは、に送信domain.comするのにwww.domain.com有効ですか
カールG

4

これは、s3バケットのヘルプを使用して実行できます。手順は次のとおりです。

ステップ1. s3バケットを作成します。

ステップ2.リダイレクトを使用してホスティングする静的Webサイトとしてバケットを作成します。

ステップ3. wwwドメイン以外のAWS Route 53エントリを編集します。

A-IPv4アドレス->エイリアスはい->エイリアスターゲット(ドロップダウンからs3バケットエンドポイントを選択します)。

ステップ4.レコードセットを保存します。


0

現在、AWS Route53は、APEXレコード(ルートドメイン)として知られているものを別のドメイン名にリダイレクトするサポートを提供していませんが、それらはソリューションで機能しています。

ルートドメイン(devopsfolks.com)をWPがホストするソリューションのIPアドレスを指すA(エイリアス)レコードを作成することでこれを達成しました...そして、答えはイエスです。エイリアスを変更します。しかし、プロバイダーは、何らかの災害復旧を実行し、ハードウェアを変更する必要がある場合を除き、IPが固定されていることを保証しました。


5
Aはエイリアスを意味するのではなく、アドレスを意味します。また、上記のS3バケット方式を使用して、Route 53で簡単にリダイレクトを行うことができます。
マイケルハンプトン

「彼らは解決策に取り組んでいます」これに関する更新はありますか?
トム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.