コンテンツにスキップ

国コードリダイレクト

訪問者のヘッダーにある国コードに基づいてレスポンスをリダイレクトします。

export default {
async fetch(request) {
/**
* リダイレクト先のURLのマップ
* @param {Object} countryMap
*/
const countryMap = {
// 国コードとターゲットURLをあなたのケースに適用するものに置き換えてください。
US: "https://example.com/us",
EU: "https://example.com/eu",
};
// cfオブジェクトを使用してリクエストの国を取得します
// cfオブジェクトの詳細: https://developers.cloudflare.com/workers/runtime-apis/request#incomingrequestcfproperties
const country = request.cf.country;
// 国がnullでなく、上記の国マップに定義されている場合、リダイレクトします。
if (country != null && country in countryMap) {
const url = countryMap[country];
// このログ出力文は最終出力から削除してください。
console.log(
`${country}に基づくリクエストにより、ユーザーは${url}に移動します。`,
);
return Response.redirect(url);
// リクエストの国がマップにない場合、別のページを返します。
} else {
return fetch("https://example.com", request);
}
},
};