{关键词},URL重定向配置指南与301跳转优化方案

"小火箭"(Shadowrocket)的 Rewrite 功能主要用于 URL 重写请求/响应修改脚本注入,以下是完整的配置指南和常用脚本示例:

基础配置结构

Shadowrocket 配置主要分为两个部分:

[Rewrite] 段(简单重写)

用于简单的 URL 跳转、请求头修改或拒绝连接。

[Rewrite]^https?://example\.com/old$ https://example.com/new 302
# 请求头修改
^https?://api\.example\.com header-replace User-Agent "Mozilla/5.0"
# 拒绝广告请求
^https?://ad\.example\.com reject
^https?://tracking\.example\.com reject-img  # 返回空图片

[Script] 段(复杂脚本)

用于需要 JavaScript 处理的复杂逻辑(修改响应体、计算签名等)。

[Script]
# 格式:名称 = 类型, 正则, 脚本路径/链接, 是否需要MITM
http-response ^https?://api\.example\.com/data requires-body=1,script-path=https://raw.githubusercontent.com/.../script.js
http-request ^https?://api\.example\.com/auth requires-body=0,script-path=local_script.js

常用脚本示例

示例 1:解锁/去广告(响应体修改)

// unlock.js
let body = $response.body;
let obj = JSON.parse(body);
// 修改 VIP 状态
obj.data.is_vip = true;
obj.data.vip_expire = "2099-12-31";
$done({body: JSON.stringify(obj)});

配置:

[Script]
解锁VIP = type=http-response, pattern=^https?://api\.example\.com/user/info, requires-body=1, script-path=unlock.js

示例 2:请求头注入(Token 自动添加)

// auth.js
let headers = $request.headers;
headers['Authorization'] = 'Bearer YOUR_TOKEN_HERE';
headers['X-Custom-Header'] = 'injected_value';
$done({headers});

配置:

[Script]
自动鉴权 = type=http-request, pattern=^https?://api\.example\.com/, script-path=auth.js

示例 3:URL 参数修改

// modify_url.js
let url = $request.url;
// 添加额外参数
url = url + (url.includes('?') ? '&' : '?') + 'extra_param=value';
$done({url});

完整配置模板

[General]
# 开启 MITM(HTTPS 解密必需)
mitm = true
# 证书配置(首次需在设置中安装并信任证书)
ca-passphrase = Shadowrocket
ca-p12 = 证书内容(base64)
[Rule]
# 确保相关域名走代理或直接连接
DOMAIN,api.example.com,DIRECT
[Rewrite]
# 简单重写示例
^https?://short\.url/(\w+) https://example.com/redirect/$1 302
^https?://.*\.googlevideo\.com reject-dict
[Script]
# 脚本示例
http-response ^https?://api\.example\.com/v1/users requires-body=1,script-path=https://raw.githubusercontent.com/.../unlock.js,tag=解锁会员
http-request ^https?://api\.example\.com/v1/ads requires-body=0,script-path=https://raw.githubusercontent.com/.../remove_ad.js,tag=去广告
[MITM]
# 需要解密的域名(脚本修改 HTTPS 内容必需)
hostname = api.example.com, *.example.com

关键注意事项

MITM(HTTPS 解密)配置

  • 必须安装证书:配置 → 证书 → 生成新的 CA 证书 → 安装 → 系统设置中信任
  • hostname 列表:在 [MITM] 段明确列出需要解密的域名,支持通配符 *.example.com

脚本类型选择

类型 用途 requires-body
http-request 修改请求头、URL、请求体 0(默认)或 1
http-response 修改响应头、响应体 1(修改 body 时必须)

调试技巧

  • 日志查看:Shadowrocket → 设置 → 日志(查看脚本报错)
  • 本地测试:先将脚本保存到 iCloud/本地,确认无误后再使用远程链接
  • 语法检查:JavaScript 严格区分大小写,注意 $done() 必须调用

性能优化

  • 避免在 http-request 中做耗时操作(会阻塞请求)
  • 正则表达式尽量精确,避免过度匹配
  • 使用 script-update-interval 控制远程脚本更新频率

常用脚本仓库参考

  • GitHub 搜索Shadowrocket ScriptQuantumult X Script(语法兼容)
  • 常用规则集:神机规则、DivineEngine、ConnersHua

提示:Shadowrocket 的脚本语法与 Quantumult X 高度兼容,大部分 QX 脚本可直接使用,只需注意路径和参数格式的细微差别。

需要特定功能的脚本(如某个 App 的解锁)可以提供具体域名,我可以帮你编写对应的正则和脚本逻辑。

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