以前の名前: redirect_program
動作条件:
デフォルト値: none
提案された設定:
URLの書換えを使用するための実行可能な場所を指定します。
それらはほとんどすべての機能を実行することができますが、1つも含まれていません。
要求された各URLは、フォーマットによって書き換えられたラインを受信します。
[channel-ID <SP>] URL <SP> client_ip "/" fqdn <SP> user <SP> method [<SP> kv-pairs]<NL>
リクエストを処理した後にヘルパーは次の形式を使用して応答する必要があります:
[channel-ID <SP>] result [<SP> kv-pairs]
結果のコードは次のようになります:
- OK status=30N url="..."
- 'url='で指定されたURLをリダイレクトします。
'status='はオプションで、SquidのHTTPレスポンスでのクライアントに送信する状態コードが含まれています。
これは、HTTPリダイレクトステータスコードのいずれかでなければなりません:301, 302, 303, 307, 308.
ステータスが与えられていない場合はSquidによって302が使用されます。
- OK rewrite-url="..."
- 'rewrite-url='で指定されたURLを書き換える。
新しいURLはSquidが直接フェッチし、その要求に対する応答としてクライアントに返されます。
- OK
- url= と rewrite-url= どちらかのときは、SquidをURLを変更せずに送信されます。
- ERR
- URLは変更しません。
- BH
- 内部エラーが識別され、その結果を防ぐヘルパーが行われました。
'message=' というキー名は、ログメッセージを配信するために予約されています。
-
将来的には、インタフェース・プロトコルは、key = valueの組み合わせを使用して拡張されます。("kv-pairs"上図)
ヘルパープログラムは、受信し、おそらく各入力ラインのトークンの追加の空白を無視するように準備されるべきです。
concurrency= オプションを使用すると、プロトコルは、request/response(要求/応答)の前にクエリチャネルタグを導入するように変更される。
クエリチャネルタグは 0 から concurrency-1 の間の数値である。
この値は、そのリクエストに係る応答の最初の部分として、Squidに戻るときにそのままエコーバックしなければなりません。
警告: URLの再書込み能力は、可能な限り避けるべきである。
代わりに、応答用のURLリダイレクト・フォームを使用してください。
リライトでは、クライアントとサーバーで保持されている状態の違いを作成します。