Logo address

パス名適合規則

目次

2002/12/08
Pegasus は現在の所、2種類の方法でパスパターンを調べ、リクエストを制御しています。

rewrite, passwd, allow におけるパス名適合規則

ここで使用されているパターンマッチング規則は、とても簡単なものです。すなわち、2つの絶対パスを P1, P2 とします。P1 が P2 より深いときに、パス P1 はP2 にマッチすると考えます。
例えば、
	P1	P2	result
	/abc	/	OK
	/abc	/defg	NG
	/abc	/abc/	OK
	/abc/	/abc	OK
	/abc	/abc/de	NG
	/abc/de	/abc
などです。ここに OK は P1 が P2 にマッチすることを意味しています。

ここではパスパターンとして正規表現やシェルのワイルドカードに見られるような特殊文字を使用しません。パターンの中の全ての文字は特殊な意味を持ってません。("/" がディレクトリの区切り子であることを除けば)

handler におけるパス名適合規則

handler で使用されているパス名適合規則はシェルで使用されているパスパターンの表現とよく似ています。シェルのパスパターンと同様に、*, ?, [] が使えます。但し "/" は基本的に他の文字と同じ扱いですが、1つの例外があります。
即ち /*/ のパターンは / にマッチすると言うルールが追加されています。このルールは Pegasus が ftp ディレクトリを扱うのに都合の良い様にできています。例えば
	/netlib/*/index.html
で、(シェル流に書けば)
	/netlib/index.html
	/netlib/*/index.html
	/netlib/*/*/index.html
	/netlib/*/*/*/index.html
	...
の全てを表しています。