模板是称为资源的 URL 的集合。资源可以是单个 URL、具有共同点的一组 URL 或者整个协议。 您可以命名并创建一个模板,然后使用正则表达式将 URL 指定给该模板。这样,可以配置代理服务器按不同方式处理各种 URL 请求。任何可以使用正则表达式创建的 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。 |
x* |
匹配未出现或出现多次的正则表达式 x。 |
x+ |
匹配出现一次或多次的正则表达式 x。 |
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。根据具体使用情况,通配符的格式可以为正则表达式或 shell 表达式。通常:
对匹配目标 URL 的任何模式使用正则表达式。这包括 <Object ppath=...>、URL 过滤器以及 NameTrans、PathCheck 和 ObjectType 函数。
对于匹配传入的客户机或用户 ID 的任何模式,使用 shell 表达式,包括用于进行访问控制的用户名和组,以及传入用户的 IP 地址或 DNS 名称,例如 <Client dns=...>。
使用正则表达式通配符模式可以指定多个 URL。通配符使您可以根据 URL 中包含给定词的域名或任何 URL 进行过滤。例如,您可能需要屏蔽对包含字符串 "careers." 的 URL 的访问。为此,可以指定 http://.*careers.* 作为模板的正则表达式。