オリジンの応答に基づいて異なるオリジンにルートする
元のリクエストに対する応答が `200 OK` またはリダイレクトでない場合、別のオリジンに送信します。
export default { async fetch(request) { // 元のリクエストをオリジンに送信 const response = await fetch(request);
// 応答が 200 OK またはリダイレクトでない場合、別のオリジンに送信 if (!response.ok && !response.redirected) { // まず、元のリクエストをクローンして新しいリクエストを構築 const newRequest = new Request(request); // 新しいオリジンで再ルーティングされたリクエストを識別するためのヘッダーを追加 newRequest.headers.set("X-Rerouted", "1"); // 元のURLをクローン const url = new URL(request.url); // 異なるオリジン/ホスト名にリクエストを送信 url.hostname = "example.com"; // オリジンから新しいリクエストに対する応答を提供 return await fetch(url, newRequest); }
// 応答が 200 OK またはリダイレクトの場合、それを提供 return response; },};