最終更新日: 2014年1月13日
Squid Home / Index

ディレクティブ: url_rewrite_program

以前の名前: 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リダイレクト・フォームを使用してください。
リライトでは、クライアントとサーバーで保持されている状態の違いを作成します。

Topへ戻る

Copyright© 1998-2014 ROBATA.ORG