了解 PAC 规则

By | 2020-01-31

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长度或任意长度的字符串

发表评论

电子邮件地址不会被公开。 必填项已用*标注