Anker PowerCor
旅行には必須の大容量モバイルバッテリー!
【最新機種】GoPro hero11 Black
最新機種でVlogの思い出を撮影しよう!
[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット
防水暴風で耐久性抜群なので旅行で大活躍です!
レッドブル エナジードリンク 250ml×24本
翼を授けよう!
Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK
メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!
BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール
もう一人の僕を呼び覚ませ!!
サンディスク microSD 128GB
スマホからSwitchまで使える大容量MicroSDカード!
スポンサーリンク
目次
リダイレクトしたい
AWSのRoute53にルートドメインとサブドメインを登録している際に、ルートドメインにアクセスされたらサブドメインにリダイレクトさせたい、と言う要望はたまにあります。
もちろん、Proxyサーバー等があればそちらで対応することは可能ですが、EC2サーバーを立てずにAWSサービスを組み合わせて使うことでも実現が可能になりますので、やり方をご紹介します。
手順
前提
Route53にルートドメインとサブドメインを登録しているとします。
サブドメイン用準備
CloudFrontとS3の準備および設定
まずはリダイレクト先のサブドメイン用の各種サービスを準備しましょう。
今回はCloudFront+S3でページを表示させます。
こちらの作業については以前紹介をしているので以下を参考に進めてみてください。
確認
では、サブドメインにアクセスをしてCloudFront経由でS3バケットに適当に配置したHTMLが表示されるか確認してみましょう。
正しく設定が行われています。
ルートドメイン用準備
では、ここからがルートドメインからサブドメインへのリダイレクトの設定になります。
S3の準備
まずはS3バケットを作成してください。
こちらはCloudFrontは不要です。
この際にバケット名とドメイン名は一致させる必要があります。
S3バケットの設定を変更
S3バケットのStatic website hostingを有効化する際に、サブドメインの場合はこのバケットを使用してウェブサイトをホストするにチェックを入れていましたが、今回はリダイレクトを行いたいのでリクエストをリダイレクトするにチェックを入れます。
ターゲットバケットまたはドメインにはリダイレクト先のドメイン、プロトコルにはhttpかhttpsを入れ保存ボタンをクリックします。
Route53でAliasの設定
Route53に戻り、対象のルートドメインのAlias Targetのプルダウンを見ると作成したS3バケットが出てくると思うのでそちらを選択してSave Record Setボタンをクリックします。
プルダウンにAlias Targetが出ない場合
プルダウンに何も表示されない場合はバケット名がルートドメインと違う名前で作ってしまっている可能性がありますので、今一度確認してみてください。
確認
では、実際にブラウザでルートドメインにアクセスしてみましょう。
正常にリダイレクトされましたね。
試しにcurl
でも確認しましたがこちらも正常に301でサブドメインにリダイレクトがかかっていそうです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
* Rebuilt URL to: http://XXXXX.jp/ * Trying xx.xxx.xx.xx... * Connected to XXXXX.jp (xx.xxx.xx.xx) port 80 (#0) > GET / HTTP/1.1 > Host: XXXXX.jp > User-Agent: curl/7.43.0 > Accept: */* > < HTTP/1.1 301 Moved Permanently < Date: Wed, 17 Oct 2018 05:49:17 GMT < Location: http://www.XXXXX.jp/ < Content-Length: 0 < Server: AmazonS3 < * Connection #0 to host XXXXX.jp left intact |
終わりに
以上のように、サーバーレスでリダイレクトの設定を行うことが出来ました。
サブドメイン側にAWS Certificate Managerで取得した無料SSL署名書を設定すれば、Https通信も可能になります。
その辺の手順も過去にご紹介していますので興味のある方は試してみてください。