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 では解決しています。 変換規則 パスのマッチング規則に関しては パス名適合規則を参照して下さい。 マッチするパターンが複数存在する場合には、その中で一番長いパターンが 採用されます。 マッチしたパスはパターンと一致した部分が第二フィールドで置き換えられます。