CloudFront でドメインをリダイレクトするにはどうすればよいですか?

最終更新日: 2022 年 5 月 27 日

ドメインを Amazon CloudFront の別のドメインにリダイレクトしたいと考えています。どうすればよいですか?

簡単な説明

CloudFront でドメインをリダイレクトするには、次のいずれかを使用します。

  • 301 ステータスコードを返す Amazon Simple Storage Service (Amazon S3) ウェブサイトエンドポイント
  • リクエストを新しいドメインにリダイレクトするエッジ関数

Amazon S3 ウェブサイトエンドポイントのリダイレクトは、既存の URL パスをリダイレクトされたドメインに移動します。エッジ機能を使用すると、リクエスト内の情報に基づいてビューワーを他のページにリダイレクトしたり、すべてのリクエストをあるパスから別のパスに書き換えたりすることができます。

解決方法

301 ステータスコードを返す Amazon S3 エンドポイントを使用する

あるドメインを Route 53 にある別のドメインにリダイレクトするにはどうすればよいですか?」の「Redirecting to a different URI path or from HTTP to HTTPS using Amazon S3 and CloudFront」(Amazon S3 と CloudFront を使用して、別の URI パスに、または HTTP から HTTPS にリダイレクトする) セクションの指示に従ってください。

リクエストを新しいドメインにリダイレクトするエッジ関数を使用する

Lambda@Edge と CloudFront 関数の違いの詳細については、「CloudFront Functions と Lambda@Edge の選択」を参照してください。

Lambda@Edge の場合:

Lambda@Edge を使用したエッジでのカスタマイズ」を参照してください。コード例については、「例: HTTP リダイレクトの生成 (生成されたレスポンス)」を参照してください。

CloudFront Functions の場合:

CloudFront Functions を使用したエッジでのカスタマイズ」を参照してください。 コード例については、「ビューワーを新しい URL にリダイレクトさせる」を参照してください。