URLリライト
ChuteはリクエストのURLを異なる方法でリライトしたり、URLに基づいて特定のリクエストを拒否したりできます。
1つのリクエストに適用できるルールは1つだけです。
例:
[URL Rewrite]
^http://www\.google\.cn http://www.google.com header
^http://amazon\.cn https://z.cn 302
^http://ad\.com/ad\.png _ reject
^http://tracker\.com/event _ reject-200
^http://ad\.com/pixel _ reject-img
^http://api\.example\.com/block _ reject-dict
リライトルールは3つの部分で構成されます: 正規表現、置換、タイプ。
ヘッダーモード
Chuteはリクエストヘッダーを変更し、必要に応じてリクエストを別のホストにリダイレクトします。クライアントはこのリライトアクションに気付きません。
リクエストヘッダーの"Host"フィールドが新しいURLに合わせて変更されます。
[URL Rewrite]
^http://www\.google\.cn http://www.google.com header
HTTPSスキームのURLにリダイレクトすることはできません。また、HTTPSリクエストをリダイレクトすることもできません。
302モード
Chuteは単に302リダイレクトレスポンスを返します。ホスト名のMitMが有効になっている場合、HTTPSリクエストもリダイレクトできます。
[URL Rewrite]
^http://amazon\.cn https://z.cn 302
307モード
Chuteは単に307一時リダイレクトレスポンスを返します。ホスト名のMitMが有効になっている場合、HTTPSリクエストもリダイレクトできます。
[URL Rewrite]
^http://amazon\.cn https://z.cn 307
拒否モード
パターンがマッチした場合、リクエストを拒否します。置換パラメータは無視されます。HTTP 403 Forbiddenを返します。ホスト名のMitMが有効になっている場合、HTTPSリクエストも拒否されます。
[URL Rewrite]
^http://ad\.com/ad\.png _ reject
Reject-200モード
HTTP 200 OKステータスとゼロ長のボディでリクエストを拒否します。エラー処理をトリガーせずにトラッキングリクエストを静かにブロックするのに便利です。
[URL Rewrite]
^http://tracker\.com/event _ reject-200
Reject-Imgモード
1x1の透明GIF画像(HTTP 200 OK)を返すことでリクエストを拒否します。壊れた画像プレースホルダーを発生させずに広告画像をブロックするのに便利です。
[URL Rewrite]
^http://ad\.com/pixel _ reject-img
Reject-Dictモード
空のJSONオブジェクト{}(HTTP 200 OK)を返すことでリクエストを拒否します。JSONレスポンスを期待するAPIコールをブロックするのに便利です。
[URL Rewrite]
^http://api\.example\.com/block _ reject-dict