Kenji Arisawa
E-mail: arisawa@aichi-u.ac.jp
Aichi University
Kurozasa 370, Miyoshi-cho
Aichi, Japan
2002/02/01

Powered by Pegasus
URI 変換 (1)
名称
httpd.rewrite
配置
/sys/lib/httpd.rewrite
説明
このファイルは Pegasus にアクセスするクライアントからのリクエストに対して
正しい URI を知らせるのが本来の役割です。
例えばこのホストを pegasus.com とします。次の1行
/sys/man /man/man.html;
は、
http://pegasus.com/sys/man/1/acme
のようなクライアントからの要求が来た時に
http://pegasus.com/man/man.html;/1/acme
としてクライアントに再送を促します。
(ホストドメイン名が省略された場合には、自分のホスト名を付加します。)
また次の1行によって
/sys/man http://plan9.bell-labs.com/sys/man
plan9.bell-labs.com の /sys/man を参照する様にしむけます。
次の行も同様です。
/~rsc http://www.eecs.harvard.edu/~rsc
この例はユーザが他のサーバに移動した場合に便利です。
Pegasus はこのファイルの中で仮想ホストとユーザの httpd ルートの設定を行って
います。
http://pegasus */usr/pegasus/www
/~bob */usr/arisawa/http
第二フィールドが `*' で始まる行がそれです。
以下では * で指定されたディレクトリを httpd ルートと呼ぶことにします。
httpd ルートの下にはディレクトリ doc と etc を含む必要があります。
そして doc の下に仮想ホストやユーザの Web ドキュメントを置きます。
etc にはドキュメントの制御ファイル(rewrite, allow, passwd, handler など)を
置きます。
管理の手間を省くために、ユーザが
$home/web/doc
を持っている場合には、httpd.rewrite に明示的に httpd ルートが指定されていな
くても、このディレクトリがユーザのドキュメントルートとなり、
http://pegasus.com/~alice/
のようにユーザ名の前に `~' を付けてブラウザからアクセスできるように
なります。
注意: Pegasus 1.0 ではユーザに対して * を指定した場合に、問題が発生します。
これは Pegasus 1.0 のバグです。Pegasus 1.0a では解決しています。
変換規則
パスのマッチング規則に関しては パス名適合規則を参照して下さい。
マッチするパターンが複数存在する場合には、その中で一番長いパターンが
採用されます。
マッチしたパスはパターンと一致した部分が第二フィールドで置き換えられます。