以通配符(*)开始的过滤项,如果其中含有/则过滤有问题,请看内容。

新手入门、经验交流

Moderator: cre

Forum rules
  • 软件自带帮助是最好的入门教程,请仔细阅读;在您掌握最基本知识前,我们没法帮助您
  • 提问前请先查阅软件帮助文件和论坛相关讨论
  • 查阅软件帮助和论坛相关讨论即可解决的问题帖将直接删除,以免浪费他人时间
  • 请学会如何提问,尽量将问题描述清楚,不明确的提问将被直接删除
User avatar
phoenix
Site Admin
Posts: 526
Joined: Dec 29 2007, 16:27

Re: 以通配符(*)开始的过滤项,如果其中含有/则过滤有问题,请看内容。

Post by phoenix »

经国外网友指点,已可确认此问题并非Proxomitron的bug! :D :D :D

出现此问题的原因是,当Proxomitron处理URL style hashes的时候,其中的通配符将只匹配符合域名格式的字符。以楼主的例子来说,表达式“*ivy.pconline.com.cn/adpuba/*”中的第一个“*”在到达“http://”中的“/”就停止匹配了,其无法匹配到边界表达式指定的“<iframe”,因此造成整个匹配失败。

那为什么将表达式放在其他blockfile中,或者变形为*(ivy.pconline.com.cn/adpuba)/*或者*(ivy.pconline.com.cn/adpuba/)*时,能匹配成功呢?第一种情况,应该是因为blockfile中项目太少,根本就没有hash;第二种情况,则是变形后不再符合url style的要求,因此没有按url style进行hash或者根本就没有hash。两种情况下,“*”都没有必须匹配符合域名格式字符的限制,因此可以匹配到边界表达式指定的边界,所以最终匹配成功。

以上所说的hash的情况,可以通过http://local.ptron/.pinfo/lists/进行验证。

注:关于hash的详细说明,请参考软件自带帮助的“Creating blocklists”一节。
nikita_win wrote:将“*”写到表达式里,Ad List中不以通配符开始,的确可以。但是真的能提高效率么?*$LST(adjs)*比对过程应该和在Ad List中所有规则前后添加通配符一样的吧?
单条项目的情况下,应该是一样的。但是,当blockfile中的条目多到可以hash的情况下,也许会有变化。我不了解hash的具体逻辑,无法给你准确结论。但既然软件作者给出了“Keep in mind leading wildcards are always slower and should be avoided if possible (particularly in web filter bounds checks).”的建议,为什么不遵守呢?
nikita_win
Posts: 7
Joined: Jan 17 2008, 17:00

Re: 以通配符(*)开始的过滤项,如果其中含有/则过滤有问题,请看内容。

Post by nikita_win »

Many Thanks!!!

我会再仔细研究自带帮助的。
谢谢!!!
Bonnie
Moderator
Posts: 165
Joined: Oct 05 2008, 01:27

Re: 以通配符(*)开始的过滤项,如果其中含有/则过滤有问题,请看内容。

Post by Bonnie »

phoenix wrote:
nikita_win wrote:如果不用Hash是不是会降低过滤效率???
NoHash eliminates all hashing and can save memory for list that are seldom called or where speed isn't an issue.
以现在的cpu速度,应该不是问题。另外,不用Hash能节省内存,不过以现在的内存容量,意义也不大。
我觉得这句话的意思是,对于速度不会造成问题的过滤名单来说,可以使用nohash,而不是说nohash对速度没有太大影响吧?
不过对于“速度不会造成问题的过滤名单”这句话,我也不太理解实际意义,纯粹是按字面意思理解的。
Post Reply