-
Notifications
You must be signed in to change notification settings - Fork 40
动态 URL 过滤
[文章完善中]
动态 URL 过滤功能是从 uBlock Origin 0.9.8.0 版本开始引入的。
动态 URL 过滤("URL 过滤")的首要目的是作为一种诊断或减损工具使用,用来修复被动态过滤或静态过滤破坏的网页。它的次要目的是提供比动态过滤更高的颗粒度。
URL 过滤的优先级比动态过滤和静态过滤更高,"uBlock 的网络过滤引擎概览"显示了 URL 过滤的应用范围,并有助于更好了解其使用目的。
你可以从日志记录台访问 URL 过滤功能,例如通过记录台界面创建和管理动态 URL 的规则,只要找到要创建规则的资源并点击该行的第四个单元格:
URL 过滤也使用_规则_,类似于动态过滤规则,但区别是目标主机名是用一条 URL 来代替:
[源主机名] [目标主机名] 类型 操作
源主机名
是一条请求被取消时来自的_上下文_,就像动态过滤规则,地址栏中 URL 的主机名就是这个上下文。使用 (*
) 这个全局的上下文可以创建一条应用于任何网页的 URL 过滤规则。
目标 URL
是用来匹配的 URL:一个资源的 URL 必须完全以目标 URL
打头才能满足匹配要求。
类型
是该资源的类型,使用 *
这个特殊类型可以创建一条应用于任何类型的 URL 过滤规则。
操作
是要告诉 URL 过滤引擎有匹配的资源以后要做什么,操作类型和动态过滤规则一样,包括:allow
、noop
和 block
。
重要的是要了解到 URL 过滤规则会覆盖动态过滤规则和静态过滤规则。所以你可以创建一条 allow
的 URL 过滤规则来覆盖一条 block
的普通动态过滤规则。
恢复受损的网站:issue #240 里面有提到一个真实的例子,该网站需要获取 http://s7.addthis.com/js/300/addthis_widget.js
这个资源才可能正常显示评论区。但是 addthis.com
被 uBlock 的 Privacy 规则列表给屏蔽了,还添加了 important
规则选项,表示这条规则无法被例外规则所覆盖。使用 URL 过滤就可以解决这个问题,因为 URL 过滤规则会覆盖其他所有类型的过滤规则。
实现更细颗粒度的动态过滤:[还在想一个更具体的例子] 使用 * * 3p block
这条动态过滤规则会默认屏蔽所有第三方资源,但用 example.org https://foo.com/widget.js script allow
规则来允许特定的第三方资源,这在 URL 过滤功能引入之前是实现不了的,唯一的解决办法是允许 foo.com
下的所有资源。
uBlock Origin - 一款支持 Chromium、Firefox 和 Safari 的高效过滤工具,快速且简洁