PAC
全称 Proxy Auto Config File,用于根据 URL 选择不同代理服务器或是不代理直接访问,相比于传统代理可以加快速度,也减少代理服务器的流量。
PAC 规则描述
PAC 最早是 Ad Block
使用的一种规则,用于屏蔽网页各种广告,所以参数除了 URL 外还支持各种 DOM 元素,详细参数可以查看 Adblock Plus filters explained。
基本过滤规则:
# 要匹配的 url 地址,如: http://example.com or http://example.com*
基本的过滤器 /
:
# 匹配整站,如: http://example.com/ # 匹配站点部分地址,如: http://example.com/ads/ # 匹配站点部分资源,如: http://example.com/ads/banner*.gif
使用 !
行注释符进行注释:
# 使用!作为注释的开始,可以在注释中书写任何想些的文案,如: ! Comment ! Here is comment. ! 我是注释
使用 |
管线符号来表示地址的最前端或最末端,用于精确控制匹配的开始或结束:
# PAC 默认会认为每个规则前后都有通配符,所以,ad 和 *ad* 没有任何区别。为了明确前后,可以加 |。 # gif| 说明在 gif 后没有任何东西了。 |http://xxx 说明在前面没有了。 # 示例:匹配以 http://www.example.com 开头的网址 |http://www.example.com or |http://www.abc.com*
使用 ||
子域通配符匹配主域名下的所有子域:
# 示例:匹配网址中包含 example.com 的全部站点,如: ||example.com
定义例外规则 @@
:
# 可以使用 @@ 表示后面的是例外,不会拦截;也可以配合 | 精确匹配。如: @@|http://example.com
分隔符 ^
,匹配任何单个字符,同样用于精确匹配:
# http://example.com/ 和 http://example.com:8000/ 已经能帮助我们匹配到这两个网址, # 但却不能匹配 http://example.com.ar/ 使用 http://example.com^ 即可实现我们的需求 # 分隔符可以是除了字母、数字或者 _ - . % 之外的任何字符。地址的结尾默认也是一个分隔符。
排除标识符 ~
,来修正匹配的地址
字符通配符 *
,匹配0长度或任意长度的字符串