操作指南 · 开发者

如何用重定向拦截 Chrome 扩展挡掉不想要的跳转

NetworkRules4 分钟阅读

简短回答

新增一条“拦截”动作的规则,URL 匹配写上重定向的目标——或触发它的脚本——命中的请求就会在离开浏览器之前被取消。命中日志和徽标计数展示这条规则拦下的每一个请求,你能确认拦截真的生效了。

  1. 1

    打开扩展,新增一条“拦截”动作的规则。

  2. 2

    用“录制”标签页捕获页面流量,找出重定向目标或触发它的脚本。

  3. 3

    为它填一个 URL 匹配(如 ||redirector.example.com^),主机轮换就启用正则。

  4. 4

    保存并重新加载——命中的请求现在会在浏览器里被取消。

  5. 5

    在命中日志和工具栏徽标里确认拦截,再把规则按项目或环境分组。

页面总把你弹到没打算去的地方——强制跳转的移动版网站、夹在链接和真实目的地之间的跟踪中转,或是自作主张让标签页导航的第三方脚本。基于规则的重定向拦截器和广告拦截器思路不同:它不用人工维护的过滤列表,而是让你指名道姓地取消哪些请求,并且每拦一次都给你看证据。这份精确,正是你在开发中想阻止某个重定向、又不想弄坏页面其他部分时需要的。

新增一条拦截规则

打开扩展,创建一条拦截动作的规则。名字起得让以后的自己认得——“干掉移动版跳转”“staging 不要分析脚本”都比“规则 7”强。

找到该拦截什么

如果不知道重定向由哪个请求发起,先用“录制”标签页:它在本地捕获页面的真实流量,让你找出中转域名——或挑起整条链路的脚本——再把那个请求一键转成规则。

用匹配模式命中它

填一个 URL 匹配,例如 ||redirector.example.com^;链路轮换主机名就打开正则。命中的请求在浏览器内部被直接取消——没有任何流量经由服务器代理。

到命中日志里验证

重新加载页面。工具栏徽标累计命中次数,命中日志逐条列出哪些请求在何时被拦下。这很重要,因为在繁忙的 DevTools 时间线里,一个被取消的请求很容易看漏——日志才是生效的凭证。

按项目限定范围

把拦截规则按环境分组——staging 一组、客户项目一组——整组一键开关,而不是逐条手改。

它能拦什么、拦不住什么

两句实话。第一,在 Chrome 上,扩展开箱即拦 fetch/XHR 流量;要拦截顶层页面跳转、service worker 或 WebSocket 请求需要开启 Full Mode,开启期间 Chrome 会挂出“正在调试此浏览器”的横幅(Firefox 没有这类盲区)。第二,规则拦截器只拦你点名的请求——它不是杀毒软件,不会识别从没告诉过它的诈骗跳转。

一切都在本地运行:规则存在你的设备上,没有遥测,免费版的拦截规则不限数量。

Chrome 里的 NetworkRules 设置页:本地优先、零遥测的隐私卡片,离线激活许可证,以及 Full Mode 开关
设置页:本地优先、零遥测是设计使然——还有把拦截范围扩展到页面跳转和 WebSocket 的 Full Mode 开关(Chrome)。

拦截、重定向、改写——都有凭证

基于规则的拦截,命中日志记下它拦掉的每一个请求。本地运行,零遥测。

了解 NetworkRules →