RequestOrbit

実践的なリダイレクト例

開発、API の切り替え、CDN 移行に役立つ設定例です。

ステージング API をローカルサーバーへ送る

/v1/ より後のパスを $1 として残します。アプリのビルドを変えずに、実際のフロントエンドをローカル API やリバースプロキシへ接続できます。

ローカルサーバーが扱うメソッドだけを選び、リクエスト元を app.example.com に限定します。

            Match type    Simple wildcard
Match         https://api.staging.example.com/v1/*
Resources     XMLHttpRequest
Methods       GET, POST, PUT, PATCH, DELETE
Initiator     app.example.com
Action        Redirect
Destination   http://localhost:3000/v1/$1

https://api.staging.example.com/v1/users/42
→ http://localhost:3000/v1/users/42
          
管理しているサイトを新しい CDN へ移す

スクリプト、スタイル、画像、フォントの完全なパスを保ったまま新しいホストへ移します。サイト本体の更新中に一時的な互換ブリッジとして使えます。

これは常に実行されるリダイレクトで、フェイルオーバーではありません。新しい CDN に接続できなくても、以前の CDN へ自動では戻りません。

            Match type    Simple wildcard
Match         https://static.legacy.example.com/*
Resources     Script, Stylesheet, Image, Font
Initiator     www.example.com
Action        Redirect
Destination   https://cdn.example.com/$1

https://static.legacy.example.com/assets/app.css
→ https://cdn.example.com/assets/app.css
          
正規表現で読み取り専用 API を v1 から v2 へ切り替える

二つのキャプチャグループでリソースの種類と ID を残し、/v1/ だけを /v2/ に変えます。GET だけに限定することで、書き込みリクエストを誤って変更するのを防ぎます。

保存時に、現在のブラウザーが正規表現に対応しているか確認します。* ごとに残したい一部分が明確なら、簡易ワイルドカードの方が分かりやすくなります。

            Match type    Regular expression
Match         ^https://api\.example\.com/v1/(users|projects)/([^?]+)$
Resources     XMLHttpRequest
Methods       GET
Initiator     app.example.com
Action        Redirect
Destination   https://api.example.com/v2/$1/$2

https://api.example.com/v1/projects/alpha
→ https://api.example.com/v2/projects/alpha
          
回帰テストで本番バンドルを一つだけ置き換える

正確な URL フィルターで、一つのスクリプトだけをローカルのデバッグビルドへ置き換えられます。

自分で管理するアプリだけに使用してください。HTTPS ページではローカル HTTPS サーバーが混在コンテンツ制限を避けやすくします。

            Match type    URL filter
Match         https://app.example.com/assets/checkout.js
Resources     Script
Initiator     app.example.com
Action        Redirect
Destination   http://localhost:5173/checkout.js
          
設定例を使う前に

すべての例では、文書用の example.com ドメインを使っています。自分で管理している URL に置き換え、無効のまま作成してから、実際の URL をいくつかテストしてください。

リダイレクトとリクエストヘッダーは、ページが実際に受け取る内容を変えます。リソースの種類とリクエスト元を絞り、関係のないサイトに影響しないようにします。

リダイレクトではできないこと

すべての条件に一致すると、ブラウザはすぐにリダイレクトします。404 を待つ、レスポンス本文を読む、通信に失敗してから別の宛先を選ぶ、JavaScript で URL を生成するといった処理はできません。

  • 宛先は HTTP または HTTPS に限られます。
  • 簡易ワイルドカードと正規表現のキャプチャは $1〜$9 で参照します。
  • クエリ順序、デコード、重複キーは自動で正規化されません。
  • 同じ URL へのリダイレクトや、検出されたループはブロックされます。
特別な設定なしでプライバシーを保護

ルールはブラウザ内だけに保存されます。アクセス解析も、ルールを処理する外部サービスもありません。