問題点
CloudFrontFunctionsを使って、許可されたIP以外からのアクセスがあった場合は、
特定のページにリダイレクトしたい。
という処理は以下のような内容で実装することができました。
解決方法
内容はいたってシンプルで、
elseの中身のstatusCodeを302に設定
↓
headersにリダイレクトしたいURLを設定した変数をセットする
これだけです。
function handler(event) {
var request = event.request;
var clientIP = event.viewer.ip;
var IP_ALLOW_LIST = [
'XX.XXX.XX.XX',
'XX.XXX.XX.XX',
];
var isPermittedIp = IP_ALLOW_LIST.includes(clientIP);
var newurl = `https://qiita.com/`
if (isPermittedIp) {
// IP_ALLOW_LISTのIPは正常に処理する
return request;
} else {
// IP_ALLOW_LIST以外のIPはQiitaに飛ばす
var response = {
statusCode: 302,
statusDescription: 'Found',
headers:
{ "location": { "value": newurl } }
}
return response;
}
}
所感
CloudFrontFunctionsはCFに対して、js処理を手軽に入れることができるため自由度が高く大変便利です。
是非是非皆さんも使ってみてください😊
参考資料
最後に
いいね!いただけると励みになります👍