阅读:2898回复:6
ABP规则 管线符号(||) 不明
看了ABP规则教学,有不明处。
关于两根管线符(||) 一根管线符(|)我已明白。但是两根有什么不同? 想阻挡 http://example.com/banner.gif https://example.com/banner.gif http://www.example.com/banner.gif。 规则 ||example.com/banner.gif 将会阻挡以上三地址 这样看来,(||)相当于通配符*(星号),代表了 规则当中 example之前的任意字符(特殊符号、字母) 但是该规则并不会阻挡 1.http://badexample.com/banner.gif 2.http://gooddomain.example/analyze?http: ... banner.gif 按推论,第一条规则 example之前, http://bad应当符合“通配符”(特殊符号、字母),但是该广告并未过滤。 (||)怎么运用为好,请举例 |
|
1楼#
发布于:2011-07-09 21:47
||example.com就是所有域名是example.com的地址,不是通配符;
例如www.example.com、forum.example.com、example.com…… |
|
2楼#
发布于:2011-07-09 21:47
AP和ABP规则写法一样,你可以看看
https://autoproxy.org/zh-CN/Rules
|
|
|
3楼#
发布于:2011-07-09 21:47
基础问题
题目 http://gooddomain.example/analyze?http: ... banner.gif 1.根据"域名"的定义,域名是指哪部分? A. http://gooddomain.example/ B. http://gooddomain.example/analyze? C. http://gooddomain.example/analyze?http: ... banner.gif D. http://example.com/banner.gif 2.【analyze?http://example.com/banner.gif 】这一串字符怎么称呼? |
|
4楼#
发布于:2011-07-09 21:47
这个最好还是网上学习一下域名的基本构成吧。
以本网站 <!-- w --><a class="postlink" href="http://www.firefox.net.cn">www.firefox.net.cn</a><!-- w -->来说,www 是网络名,firefox是域名主体,.net.cn是域名后缀。所以域名就是firefox.net.cn 你上面只有D里面的example.com 是域名。 |
|
|
5楼#
发布于:2011-07-09 21:47
||表示开始,应该是指域名的开始。注意,在一个域名中,后缀加上之前的一个单词才是二级域名,其它的都是三级或四级乃至更多级域名。
<!-- w --><a class="postlink" href="http://www.example.com">www.example.com</a><!-- w --> 中, .com是顶级域名,example.com 是二级域名,加上前面的www是一个三级域名。|| 表示域名的开始,所以匹配了 example.com <!-- w --><a class="postlink" href="http://www.example.com">www.example.com</a><!-- w -->,但是不匹配www.subexample.com,因为它的二级域名是 subexample.com,不符合规则中的任何一个定义。 其实,在域名中,每个节只允许是英文数字和减号,意味着“||example.com”可以理解为: ([a-z0-9-\.]+\.)?example.com 这是一个正则表达式,解释一下,匹配如下内容: 1.域名完全符合 example.com 的请求 2.域名包含 .example.com 的请求。注意在 example.com 前面加入了一个点,这就限定了必须是 example.com 的子域名才能匹配,这也就是为什么 subexample.com 这个匹配不了的原因:匹配的时候前面要么没内容,要么前面的内容以.结尾。 常见的顶级域名包括 .com .org .net .net.cn .cn 等等。 一个完整的URL,例如: http://www.google.com/analyze?http://ex ... banner.gif 其中,http://是协议,www.google.com 是域名,这是一个三级域名,analyze是路径,而 ?http://example.com/banner.gif 则是查询字符串。 至于如何使用,举个例子。比如现在我要拦截cnzz.com的站点统计脚本,假定cnzz.com的统计脚本路径如下格式: http://s1.cnzz.com/stat.php?out=js 一般比较大型的站点,都会有负载均衡和CDN措施,会在不同的地点设置很多CDN服务器,当你请求的时候会就近路由你的请求到最近的镜像服务器以提高速度,cnzz就是这样的,它的服务器域名类似这样: s?.cnzz.com,这是一个三级域名,?表示一个数字,服务器可能从 s1-s31或者更多。而在这些镜像服务器之下的文件路径其实是一样的,此时,便可以使用||来匹配它们: ||cnzz.com,这就匹配了所有二级域名是cnzz.com的请求,包括了所有的s1.cnzz.com到 s31.cnzz.com 的镜像服务器。 类似的镜像服务器有很多,比如QQ空间,你从网通的线路访问会使用很多 *.cnc.qzone.qq.com 这样的域名访问,从电信的线路则会有很多 *.cts.qzone.qq.com 的域名,此时||便能起上很大的用场。 |
|
6楼#
发布于:2011-07-09 21:47
楼上真用心,赞。
|
|
|