导读:
Shadowrocket(小火箭)的重写规则(Rewrite)主要用于修改 HTTP/HTTPS 请求的 URL、请求头(Header)或响应体(Body),以下是完整的规则语法和使用指南:
规则类型与语法
URL Rewrite(URL 重写)
正则匹配模式 替换内容 类型
常见类型:
302- 临时重定向(改变 URL)307- 临时重定向(保留请求方法,POST 仍是 POST)reject- 拒绝连接reject-200- 返回 200 空响应reject-img- 返回 1x1 透明图片reject-dict- 返回空 JSONreject-array- 返回空数组[]
Header Rewrite(请求头重写)
正则匹配模式 头名称 头值 动作
动作类型:
request-add- 添加请求头request-replace- 替换请求头request-del- 删除请求头response-add- 添加响应头response-replace- 替换响应头response-del- 删除响应头
Body Rewrite(需要开启 MITM)
正则匹配模式 替换内容 动作
动作类型:
request-body-replace- 替换请求体response-body-replace- 替换响应体
实用配置示例
强制 HTTPS(升级 HTTP 到 HTTPS)
[URL Rewrite]
^http://(www\.)?google\.com https://$1google.com 302
^http://(www\.)?baidu\.com https://$1baidu.com 302
^http://(.*)\.cn https://$1.cn 302
去广告(Reject)
[URL Rewrite]^https?://.+?\.(ad|ads|advertise|advertising)\..+ _ reject
^https?://ad\. _ reject
^https?://ads\. _ reject
# 特定广告域名
^https?://googleads\.g\.doubleclick\.net _ reject-200
^https?://app\.ads\.lan _ reject-img
修改 User-Agent(伪装客户端)
[Header Rewrite]
# 知乎去 APP 弹窗(伪装成微信访问)
^https?://www\.zhihu\.com User-Agent Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15A372 MicroMessenger/7.0.15(0x17000f27) NetType/WIFI Language/zh_CN
# 百度贴吧去广告(伪装成旧版客户端)
^https?://tieba\.baidu\.com User-Agent Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15
解锁区域限制(修改 X-Forwarded-For)
[Header Rewrite]
^https?://www\.netflix\.com X-Forwarded-For 8.8.8.8 request-replace
响应体修改(需要 MITM)
[URL Rewrite]
# 示例:修改 API 返回
^https?://api\.example\.com/v1/config .* response-body-replace
[MITM]
hostname = api.example.com
完整配置模板
[URL Rewrite]
# 强制 HTTPS
^http://(www\.)?example\.com https://$1example.com 302
# 去广告
^https?://ad\.example\.com _ reject
^https?://track\.example\.com _ reject-200
[Header Rewrite]
# 添加自定义 Header
^https?://api\.example\.com X-Custom-Header Value request-add
# 删除追踪 Header
^https?://.* X-Tracking-Id _ request-del
# 修改响应头(去除 X-Frame-Options 允许 iframe)
^https?://example\.com X-Frame-Options _ response-del
[MITM]
# 需要解密的域名(Body Rewrite 必须)
hostname = api.example.com, www.example.com
enable = true
重要注意事项
-
MITM 证书:使用 Body Rewrite 或部分 Header Rewrite 需要安装并信任 Shadowrocket 的 MITM 证书(设置 → 证书 → 生成新的 CA 证书 → 安装 → 系统设置中信任)
-
正则表达式:匹配模式使用正则语法,注意转义特殊字符(如 写成
\.) -
规则优先级:规则按顺序匹配,先匹配的先执行,建议将精确规则放在前面,通用规则放在后面
-
调试方法:
- 开启"日志"功能查看重写是否生效
- 使用"抓包"功能检查实际请求/响应内容
-
性能影响:过多的重写规则(特别是复杂正则)可能影响网络性能,建议精简规则
-
HTTPS 解密:iOS 13+ 需要手动信任证书:设置 → 通用 → 关于本机 → 证书信任设置 → 开启 Shadowrocket 证书
需要特定网站的重写规则(如去广告、解锁功能)可以告诉我具体需求,我可以提供针对性的规则。