RequestOrbit

如何匹配请求

选择合适的匹配方式,并尽量缩小影响范围。

三种匹配方式,怎么选

编辑器提供两种浏览器规则格式,以及一种更容易上手的 RequestOrbit 格式。大多数情况选第一种就够了:

新规则默认使用 URL 过滤器。输入内容明显像正则时,编辑器会建议切换,但不会擅自改变匹配方式。

  • URL 过滤器(推荐):浏览器原生的简洁语法,适合域名、固定 URL 和路径,但不能生成 $1。
  • 简易通配符:RequestOrbit 会把每个 * 变成捕获值,适合重定向时简单保留原 URL 的一部分。
  • 正则表达式:适合精确捕获、备选项和复杂条件;支持情况由当前浏览器检查。

|| 和 ^ 是什么意思

在 URL 过滤器中,|| 表示从域名开始匹配,并包含它的子域名。域名后的 ^ 要求这里是分隔符或 URL 结尾,因此 example.com 不会误匹配 example.company。单个 | 用来限定开头或结尾,* 表示任意数量的字符。

这里使用的是 declarativeNetRequest 的 URL 过滤器语法,不是 WebExtension 的网站权限匹配格式;所需的权限格式会由 RequestOrbit 自动生成。

            ||example.com^
|https://example.com/app.js|
https://example.com/assets/*
          

捕获与 $1 到 $9

在简易通配符模式中,第一个 * 是 $1,第二个是 $2,依此类推。在正则模式中,^ 和 $ 限定 URL 的开头与结尾,\. 匹配普通句点,.* 匹配任意内容,(...) 是捕获组。

$1 到 $9 只能写在重定向目标中。URL 过滤器里的 * 虽然能匹配任意内容,但不会捕获。

最后还可以按资源类型、请求方法和来源网页缩小范围。类型或方法留空表示不限制。

            Simple wildcard
Match         https://api.example.com/v1/*
Request       https://api.example.com/v1/users/42
$1 = users/42
Destination   http://localhost:3000/v1/$1

Regular expression
Match         ^https://api\.example\.com/v1/(users|projects)/([^?]+)$
Request       https://api.example.com/v1/projects/alpha
$1 = projects, $2 = alpha
Destination   https://api.example.com/v2/$1/$2
          
隐私无需额外设置

规则只保存在浏览器中。扩展不含数据分析,也不会把规则交给远端服务处理。