master
- 新增 Redirect(URL 重定向):+ 菜单可添加,支持静态跳转(redirect.url) 与正则捕获替换(regexSubstitution);界面加 Redirects 区块与样式 - 修复重定向/头对页面导航不生效:DNR 规则显式声明 resourceTypes 含 main_frame - URL 过滤/重定向去掉强制 ^ 锚定,改为子串匹配,无需手写协议头 - 重定向与 Filter 解耦,仅由自身 from 决定生效 - 修复 angular.lowercase 报错(AngularJS 1.7 已移除该 API) - README 补充重定向功能与用法说明
ModHeader(Manifest V3 版)
一个用于修改 HTTP 请求头和响应头的浏览器扩展。
项目来源
本项目 fork/整理自开源扩展 ModHeader(原作者 Hao Nguyen,MIT 许可)。原始代码基于 Manifest V2,依赖已被 Chrome 废弃的阻塞式 webRequest API。
本仓库在其早期源码基础上做了以下改造:
- 迁移到 Manifest V3:后台页改为 Service Worker,请求/响应头修改改用
declarativeNetRequest(DNR)动态规则实现。 - 存储层迁移:状态从
localStorage迁移到chrome.storage.local(MV3 的 Service Worker 无法访问localStorage),并保留对旧数据的一次性自动迁移。 - 精简:移除了云备份、捐赠、推广提示等无用功能与相关死代码、冗余资源。
前端仍保留原有的 AngularJS + Angular Material 界面。
功能
- 增加 / 修改 / 删除请求头与响应头
- URL 重定向(Redirect):支持静态跳转和正则捕获替换
- 按 URL 正则或资源类型限定生效范围(Filter)
- 多套 Profile 配置,可快速切换
- 给每条 header 添加备注
- 按名称 / 值 / 备注排序
- 在已有 header 值后追加(拼接 / 逗号拼接)
- 导出 / 导入 Profile(JSON)
- 克隆 Profile
- Tab 锁:仅对指定标签页生效
- 暂停:一键临时停用全部修改
安装 / 本地开发
无需任何构建工具,直接加载 src 目录即可:
- 浏览器打开
chrome://extensions - 打开右上角开发者模式
- 点击加载已解压的扩展程序,选择本仓库的
src目录 - 修改代码后,回到该页面点扩展卡片上的**刷新(↻)**即可重新加载
使用方法
- 点击工具栏中的 ModHeader 图标打开弹窗。
- 点右上角 +:
- Request header:添加请求头(如
User-Agent、Authorization等) - Response header:添加响应头(如
Access-Control-Allow-Origin) - Redirect:添加 URL 重定向规则
- Filter:添加生效条件(URL 正则或资源类型)
- Request header:添加请求头(如
- 勾选每行左侧的复选框以启用该条修改;填写 Name / Value。
- 打开目标网站并刷新,在 DevTools 的 Network 面板中即可确认头已被修改。
- 图标上的数字角标表示当前生效的 header 数量。
URL 重定向说明
在 + → Redirect 添加一条规则,填「Redirect from」和「Redirect to」:
- 静态跳转:from 填匹配的正则(如
https://old\.com/.*),to 填目标 URL(如https://new.com/)。 - 正则捕获替换:from 里用捕获组
(...),to 里用\1、\2引用。 例如 from =^https://old\.com/(.*),to =https://new.com/\1,会把路径原样带过去。 - from 是正则、子串匹配(不强制从头匹配)。真实 URL 含协议头(如
http://localhost:5173/...),所以写localhost:5173/.*即可,无需写协议; 如需从头匹配可自行加^(注意那样要带上https?://)。
生效范围说明
- 不加 Filter:对所有 URL 生效。
- URL Pattern:填写正则(如
https://example\.com/.*),仅匹配的请求生效;多条之间为「或」的关系。 - Resource Type:仅对选中的资源类型(main_frame、xmlhttprequest 等)生效。
- Tab 锁:点弹窗中的 “Tab lock”,修改将只作用于当前标签页。
目录结构
src/
├── manifest.json # MV3 清单
├── background.js # Service Worker:DNR 规则生成、角标、右键菜单
├── popup.html # 弹窗界面
├── scripts/
│ ├── main.js # AngularJS 逻辑 + storage.local 适配层
│ └── angular*.min.js # AngularJS 1.7.8 及其模块(官方,MIT)
├── styles/ # 样式
├── images/ # 图标
└── *.tmpl.html # 各对话框模板
已知限制
declarativeNetRequest的append操作对部分请求头有限制,遇到不支持的 header 时该规则会失败并在 Service Worker 控制台打印错误。- Tab 锁通过 DNR 的 session 规则 +
tabIds实现,浏览器重启后会失效(符合预期)。
许可
沿用原项目的 MIT 许可。
Languages
JavaScript
58.2%
HTML
37.4%
CSS
4.4%