格式,类型 正则匹配 替换内容

导读:

  1. 规则基本结构
  2. 常用规则类型详解
  3. 实用配置示例
  4. MITM 配置(HTTPS 解密)
  5. 完整配置模板
  6. 注意事项

Shadowrocket(小火箭)的重写规则(Rewrite)主要用于拦截和修改网络请求,包括 URL 跳转、请求头修改、内容注入、去广告等。

以下是完整的配置指南和常用示例:

规则基本结构

重写规则主要分为两类:

URL Rewrite(URL 重写)

[URL Rewrite]302 ^https?://old\.example\.com https://new.example.com
reject ^https?://ad\.example\.com

Script(脚本重写)

[Script]
# 格式:名称 = 类型, 匹配模式, 脚本路径, 其他参数
京东比价 = type=http-response, pattern=^https?://api\.m\.jd\.com, requires-body=1, script-path=jd_price.js

常用规则类型详解

类型 说明 示例
302 临时重定向(改变 URL) 302 ^http://(www\.)?a\.com http://b.com
307 临时重定向(保持请求方法) 307 ^http://old\.com http://new.com
reject 拒绝连接(丢包) reject ^https?://ad\.com
reject-200 拒绝但返回 200 状态码 reject-200 ^https?://tracking\.com
reject-img 拒绝并返回 1px 图片 reject-img ^https?://.*\.gif
header-add 添加请求头 header-add X-Custom-Value test
header-del 删除请求头 header-del User-Agent
header-replace 替换请求头 header-replace User-Agent "Mozilla/5.0"

实用配置示例

去广告(Reject)

[URL Rewrite]
# 通用广告拦截
reject ^https?://(www\.)?google\..*/(pagead|ads)/
reject ^https?://ad\..*
reject ^https?://.*/ad\.js$
reject-img ^https?://.*/tracking\.gif$

URL 跳转(强制 HTTPS)

[URL Rewrite]
# 强制 HTTP 转 HTTPS
302 ^http://(www\.)?example\.com https://www.example.com
# 短链接跳转
302 ^https?://t\.cn/(.*) https://weibo.com/$1

修改请求头(伪装 User-Agent)

[URL Rewrite]
# 修改 User-Agent(iPhone 伪装成微信内置浏览器)
header-replace User-Agent "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15A372 MicroMessenger/8.0.0"
# 添加自定义 Header
header-add X-Forwarded-For 1.1.1.1

解锁/区域限制(302 重定向)

[URL Rewrite]
# TikTok 解锁(示例,需配合节点)
(?<=_region=)CN(?=&) US 307
(?<=&mcc_mnc=)4 2 307

脚本注入(需要 MITM)

[Script]
# 响应体修改(如去除 APP 启动广告)
去广告 = type=http-response, pattern=^https?://api\.app\.com/launch, requires-body=1, script-path=remove_ad.js
# 请求体修改
修改请求 = type=http-request, pattern=^https?://api\.example\.com/submit, requires-body=1, script-path=modify_request.js

MITM 配置(HTTPS 解密)

重写 HTTPS 请求必须开启 MITM 并安装证书:

[MITM]
hostname = api.example.com, *.app.com, www.google.com

安装证书步骤:

  1. Shadowrocket → 配置 → 点击当前配置 → 编辑配置 → 开启 HTTPS 解密
  2. 生成证书 → 安装证书 → 系统设置 → 通用 → 关于本机 → 证书信任设置 → 开启信任

完整配置模板

[General]
bypass-system = true
skip-proxy = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, localhost, *.local
dns-server = 8.8.8.8, 1.1.1.1
[Rule]
DOMAIN-SUFFIX,google.com,PROXY
FINAL,DIRECT
[URL Rewrite]
# 去广告
reject ^https?://(www\.)?google\..*/(pagead|ads)/
# 强制 HTTPS
302 ^http://(www\.)?example\.com https://www.example.com
[Script]
# 示例脚本
示例脚本 = type=http-response, pattern=^https?://api\.example\.com/data, requires-body=1, script-path=example.js
[MITM]
hostname = api.example.com, *.google.com
enable = true

注意事项

  1. 正则表达式:使用标准正则语法,^ 表示开头, 表示结尾, 匹配任意字符
  2. 优先级:规则从上到下匹配,匹配成功即停止
  3. MITM 风险:解密 HTTPS 存在隐私风险,仅信任本地配置,不要安装不明来源的证书
  4. 性能影响:过多重写规则会影响网速,建议精简规则
  5. 脚本安全:脚本功能强大但危险,只使用可信来源的脚本

调试技巧:在 Shadowrocket 中开启"日志"功能,可以查看请求是否被正确重写。

需要特定功能的规则(如某 APP 去广告、解锁会员等),可以提供具体的域名或接口地址,我可以帮你编写精确的正则表达式。

您可以还会对下面的文章感兴趣: