Logo address

URI 変換 (1)

2002/02/01

名称
	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 では解決しています。


変換規則
	パスのマッチング規則に関しては パス名適合規則を参照して下さい。

	マッチするパターンが複数存在する場合には、その中で一番長いパターンが
	採用されます。

	マッチしたパスはパターンと一致した部分が第二フィールドで置き換えられます。