本指南介绍了安全 Web 代理的 UrlList
语法。
通过 UrlList
,您可以创建多个可在多条规则中重复使用的匹配条目。
UrlList
语法支持完整或按后缀匹配网域,以及包含不含参数或前缀路径的完整路径的网址。
支持的通配符
UrlList
支持 *
星号通配符,您可以将其用作前缀来匹配部分子网域或部分路径。
当您提供部分网域时,UrlList
仅匹配完整的子网域令牌。如果未提供路径分隔符,则 UrlList
会匹配任何路径。例如,如果您提供 example.com
,则 UrlList
与 example.com/*
(包括网域中的所有路径)匹配。
UrlList
如何解读条目
安全 Web 代理使用您提供的 UrlList
格式与网址进行匹配,然后确定是允许还是禁止使用该网址。
UrlList
根据以下内容解释条目:
包含英文句点 (
.
) 和正斜杠 (/
) 的条目必须是格式正确的网址。您可以添加子网域和路径通配符。第一个/
字符左侧的令牌被解释为顶级域名,如google.com/news
中的.com
。包含英文句点 (
.
) 且不包含正斜杠 (/
) 的条目将被解释为域。您可以添加子网域通配符。在这种情况下,最右侧的令牌会被解释为顶级域名,例如abc.xyz
中的.xyz
。所有其他条目无效。
当 UrlList
模式与包含正斜杠 (/
) 的值匹配时(如在 request.url()
中),系统会按照前文所述解释这些模式。但是,当 UrlList
模式与不带 /
的值匹配时(例如在 host()
中),则仅匹配该模式的域部分。
模式匹配示例
下表显示了示例格式、每种格式匹配的示例网址以及每种格式都不匹配的示例网址。
模式 | 会匹配出的结果 | 不匹配 |
---|---|---|
*example.com |
example.com/ server.example.com/ sample.server.example.com/ example.com/path example.com/path?q=query example.com/path/subpath sample.server.example.com/path/ |
myexample.com/ example.com.bad.com/ us13.altostrat.com/go/example.com/path www.google.com/search?q=example.com |
*.example.com |
server.example.com/ sample.server.example.com/ sample.server.example.com/path/ |
myexample.com/ example.com.bad.com/ us13.altostrat.com/go/example.com/path www.google.com/search?q=example.com example.com/ example.com/path example.com/path/subpath |
example.com |
example.com/ example.com/path example.com/path/subpath |
myexample.com/ example.com.bad.com/ us13.altostrat.com/go/example.com/path www.google.com/search?q=example.com server.example.com/ sample.server.example.com/ sample.server.example.com/path/ |
*server.example.com |
server.example.com/ sample.server.example.com/path sample.server.example.com/path/ |
myexample.com/ example.com.bad.com/ us13.altostrat.com/go/example.com/path www.google.com/search?q=example.com example.com/ example.com/path example.com/path/subpath |
*example.com/ |
example.com/ server.example.com/ sample.server.example.com/ |
myexample.com/ example.com.bad.com/ us13.altostrat.com/go/example.com/path www.google.com/search?q=example.com example.com/path/ example.com/path/subpath sample.server.example.com/path/ |
*example.com/path* |
example.com/path example.com/path/subpath sample.server.example.com/path/ |
myexample.com/ example.com.bad.com/ us13.altostrat.com/go/example.com/path www.google.com/search?q=example.com example.com/ server.example.com/ sample.server.com/ |
*example.com/path/* |
example.com/path/subpath sample.server.example.com/path/ |
myexample.com/ example.com.bad.com/ us13.altostrat.com/go/example.com/path www.google.com/search?q=example.com example.com/ server.example.com/ sample.server.example.com/ example.com/path |
*example.com/path/ |
sample.server.example.com/path/ | myexample.com/ example.com.bad.com/ us13.altostrat.com/go/example.com/path www.google.com/search?q=example.com example.com/ sample.example.com/ sample.server.example.com/ example.com/path example.com/path/subpath |
example.com/ |
example.com/ | myexample.com/ example.com.bad.com/ us13.altostrat.com/go/example.com/path www.google.com/search?q=example.com server.example.com/ sample.server.example.com/ example.com/path example.com/path/subpath sample.server.example.com/path/ |