テンプレートとは、リソースと呼ばれる URL の集合です。リソースは、単一の URL、なんらかの共通点を持つ複数の URL のグループ、またはプロトコル全体である場合があります。テンプレートを作成して名前を付けたら、そのテンプレートに、正規表現を使用して URL を割り当てます。このようにして、さまざまな URL の要求に対して、異なる処理ができるように、Proxy Server を設定できます。正規表現を使用して作成できる URL パターンはすべて、テンプレートに含めることができます。次の表は、デフォルトのリソースを表示し、ほかのテンプレートの内容をいくつか示しています。
表 16–1 リソースの正規表現のワイルドカードパターン
正規表現のパターン |
設定内容 |
---|---|
ftp://.* |
すべての FTP 要求 |
http://.* |
すべての HTTP 要求 |
https://.* |
すべてのセキュリティー保護された HTTP 要求 |
gopher://.* |
すべての Gopher 要求 |
connect://.*:443 |
HTTPS ポートに対するすべての SSL (セキュリティー保護された) トランザクション |
http://home\.example\.com.* |
home.example.com Web サイト上のすべてのドキュメント |
.*\.gif.* |
文字列 .gif を含むすべての URL |
.*\.edu.* |
文字列 .edu を含むすべての URL |
http://.*\.edu.* |
.edu ドメイン内のコンピュータに移動するすべての URL |
Proxy Server では、正規表現を使用してリソースを特定することができます。正規表現では、文字列のパターンを指定します。Proxy Server では、URL 内の一致パターンを見つけるために正規表現が使用されます。
正規表現の例を次に示します。
[a-z]*://[^:/]*\.abc\.com.*
この正規表現は、.abc.com ドメインにある任意のドキュメントに一致します。どのプロトコルのドキュメントでも、どのファイル拡張子が付いていてもかまいません。
表 16–2 正規表現とその意味
表現 |
意味 |
---|---|
。 |
改行文字を除く、任意の単一文字に一致します。 |
x? |
正規表現の x が 0 回または 1 回出現するものに一致します。 |
x* |
正規表現の x が 0 回以上出現するものに一致します。 |
x+ |
正規表現の x が 1 回以上出現するものに一致します。 |
x{n,m} |
文字 x に一致します。ここで x の出現は n 回以上、m 回以下です。 |
x{n,} |
文字 x に一致します。ここで x の出現は n 回以上です。 |
x{n} |
文字 x に一致します。ここで x の出現はちょうど n 回です。 |
[abc] |
角括弧に囲まれた任意の文字に一致します。 |
[^abc] |
角括弧に囲まれていない任意の文字に一致します。 |
[a-z] |
角括弧内に示された範囲内の任意の文字に一致します。 |
x |
文字 x に一致します。ここで x は特殊文字ではありません。 |
\x |
特殊文字 x の意味を削除します。 |
"x" |
特殊文字 x の意味を削除します。 |
xy |
正規表現 x が出現し、それに続いて正規表現 y が出現するものに一致します。 |
x|y |
正規表現 x か、正規表現 y のどちらかが出現するものに一致します。 |
^ |
文字列の冒頭に一致します。 |
$ |
文字列の末尾に一致します。 |
(x) |
正規表現をグループ化します。 |
次の例は、「正規表現について」に示した正規表現のうち、いくつかの使用方法について示したものです。
[a-z]*://([^.:/]*[:/]|.*\.local\.com).*
[a-z]* は、任意のプロトコルのドキュメントに一致します。
:// は、(:) の後に (//) が続くものに一致します。
[^.:/]*[:/] は、(.)、(:)または (/) を含まない任意の文字列の後に、(:) または (/) が続くものに一致します。つまり、この表現は完全修飾されていないホスト名と、ポート番号の付いたホストに一致します。
|.*\.local\.com は、完全修飾ドメイン名のホスト名 (local.com など) には一致しませんが、.local.com ドメイン内のドキュメントには一致します。
.* は、任意のファイル拡張子を持つドキュメントに一致します。
「正規表現について」に示したように、円記号は、特殊文字の意味をエスケープまたは削除するために使用することができます。ピリオドや疑問符などの文字には特別な意味があるので、それ自体を表すものとしてこれらの文字を使用する場合は、エスケープする必要があります。特に、ピリオドは多くの URL 内で使用されています。したがって、正規表現内でピリオドの特殊な意味を削除するために、ピリオドの前に円記号を付ける必要があります。
ワイルドカードパターンのリストを作成すると、サイトからアクセス可能な URL を指定できるようになります。ワイルドカードは、使用方法によって、正規表現かシェル表現のどちらかの形式になります。一般的な規則は次のとおりです。
目的の URL に一致する任意のパターンの正規表現を使用します。ここには、<Object ppath=...>、URL フィルタ、および NameTrans、PathCheck、ObjectType などの関数が含まれます。
受信するクライアントまたはユーザー ID に一致する任意のパターンのシェル表現を使用します。ユーザー ID には、ユーザー名、アクセス制御のグループ、および受信するユーザーの IP アドレスか DNS 名 (たとえば <Client dns=...>) が含まれます。
正規表現のワイルドカードパターンを使用して、複数の URL を指定することができます。ワイルドカードでは、任意のドメイン名、または 指定した語が URL に含まれる任意の URL によってフィルタをかけることができます。たとえば、「careers」という文字列を含む URL へのアクセスをブロックすることもできます。このためには、テンプレートの正規表現として http://.*careers.* を指定します。