Skip to content

动态 URL 过滤

fang5566 edited this page May 19, 2021 · 7 revisions

返回维基首页


动态 URL 过滤功能是从 uBlock Origin 0.9.8.0 版本开始引入的。

动态 URL 过滤(“URL 过滤”)的首要目的是作为一种诊断或减缓工具使用,用来修复被动态过滤或静态过滤破坏的网页。次要目的则是提供比动态过滤更精细的颗粒度。

URL 过滤的优先级比动态过滤和静态过滤更高,“uBlock 的网络过滤引擎概览”这篇文章显示了 URL 过滤的应用范围,有助于更好了解其使用目的。

你可以从记录台访问 URL 过滤功能,例如通过记录台界面创建和管理动态 URL 的规则,只要找到要创建规则的资源并点击该行的第四个单元格:

!记录台里的 URL 过滤窗口

URL 过滤也使用 规则,类似于动态过滤规则,区别是目标主机名是用一条 URL 来代替:

[源主机名] [目标 URL] 类型 操作

源主机名是一条请求被取消时的 上下文,就像动态过滤规则,地址栏中 URL 的主机名就是用来确定这个上下文。使用 (*) 这个全局的上下文可以创建一条应用于任何网页的 URL 过滤规则。

目标 URL 是用来匹配的 URL:某个资源的 URL 必须完全目标 URL 打头才能满足匹配要求。

类型是该资源的类型,使用 * 这个特殊类型可以创建一条应用于任何类型的 URL 过滤规则。

操作是要告诉 URL 过滤引擎,资源匹配了之后要做什么,和动态过滤规则一样,共有这几种操作:allownoopblock

重要的是要了解到 URL 过滤规则会覆盖动态过滤规则和静态过滤规则。所以你可以创建一条 allow 的 URL 过滤规则来覆盖一条 block 的普通动态过滤规则。

关于 URL 过滤好处的例子

修复受损的网站: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 下的所有资源。

Clone this wiki locally