CloudFront Functionsを使う
CloudFront Functionsを使うと、ビューワー(クライアント)に送信する前にHTTPレスポンスを変更することができる。
CloudFront Functionsの利用例にも下記の記述がある。
URL リダイレクトまたは書き換え: リクエスト内の情報に基づいてビューワーを他のページにリダイレクトしたり、すべてのリクエストをあるパスから別のパスに書き換えたりできます。
https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/cloudfront-functions.html
CloudFront Functionを作成する
CloudFrontのマネジメントコンソールから関数を作成し、下記のような関数コードを書いて発行する。
function handler(event) {
var response = {
statusCode: 302,
statusDescription: 'Found',
headers: {
'location': { value: 'https://qiita.com/' }
}
};
return response;
}
リダイレクトさせたいディストリビューションのビューワーリクエストに対してこの関数を関連づけると、ディストリビューションのデプロイが完了した後、ディストリビューションのドメイン名にリクエストを送信するとリダイレクトされるようになる。
ビューワーリクエストに関連付ける理由
ビューワーリクエストで関数を実行した場合、キャッシュされたレスポンスやCloudFrontによるそれ以降の処理をチェックすることなく、ビューワー(クライアント)に直接返すため。
関数でreturn response
すると、直ちにビューワーに返される。
参考