国コードリダイレクト
訪問者のヘッダーにある国コードに基づいてレスポンスをリダイレクトします。
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); } },};