ヘッダーリライト
Chuteはリクエストおよびレスポンスヘッダーを、サーバーやクライアントに転送する前にリライトできます。
1つのリクエストに複数のルールを適用できます。
例:
[Header Rewrite]
^http://example\.com.* header-add DNT 1
^http://example\.com.* header-del Cookie
^http://example\.com.* header-replace User-Agent Unknown
^http://example\.com.* header-response-add X-Server rack3
^http://example\.com.* header-response-del X-Powered-By
^http://example\.com.* header-response-replace Server nginx
リライトルールは4つの部分で構成されます: URL正規表現、アクションタイプ、ヘッダーフィールド、値。
注意: URL正規表現は、リクエストURLの一部分ではなく、完全なリクエストURLにマッチする必要があります。任意のパスとクエリ文字列を持つURLにマッチするよう、パターンは通常
.*で終わるようにしてください。
リクエストヘッダーとレスポンスヘッダー
header-で始まるアクションはリクエストヘッダー(クライアントからサーバーへ)に適用されます。header-response-で始まるアクションはレスポンスヘッダー(サーバーからクライアントへ)に適用されます。
URL正規表現の前に置くSurgeスタイルの方向プレフィックスhttp-request / http-responseも任意で受け付けられます。例: http-request ^http://example\.com.* header-replace Accept-Language en-us。
header-add
リクエストヘッダーのヘッダーフィールドを指定した値に設定します。ヘッダーフィールドが既に存在する場合は上書きされます。
例:
[Header Rewrite]
^http://example\.com.* header-add DNT 1
Before:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
After:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
DNT: 1
header-del
リクエストヘッダーからヘッダー行を削除します。
例:
[Header Rewrite]
^http://example\.com.* header-del DNT
Before:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
DNT: 1
After:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
header-replace
リクエストヘッダーのヘッダー値を置き換えます。ヘッダーフィールドが存在しない場合、何も起こりません。
例:
[Header Rewrite]
^http://example\.com.* header-replace DNT 1
Before:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
DNT: 0
After:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
DNT: 1
注意:
header-replaceはヘッダーフィールドが既に存在する場合にのみ機能します。存在の有無にかかわらずヘッダーフィールドを設定するにはheader-addを使用してください — 同名の既存フィールドを上書きするため、header-delとheader-addを組み合わせる必要はありません。
本ページは英語版からの翻訳です。内容に相違がある場合は、英語版が優先されます。