302临时重定向,工作原理、应用场景及SEO影响解析

导读:

  1. 基本语法格式
  2. 常用重写类型
  3. 完整配置示例
  4. 配置步骤
  5. 注意事项
  6. 调试技巧

Shadowrocket(小火箭)的 Rewrite(重写) 功能用于修改 HTTP/HTTPS 请求和响应,常用于去广告、解锁功能、URL重定向、修改请求头等。

以下是完整的 Rewrite 脚本指南:

基本语法格式

[Pattern] [Type] [Replacement] [Options]
字段 说明
Pattern 正则匹配URL(如 ^https?://api\.example\.com
Type 重写类型(见下文)
Replacement 或目标地址
Options 可选标记(如 header

常用重写类型

URL 重定向


# 307临时重定向(保留请求方法)
^https?://api\.old\.com https://api.new.com 307

请求头修改(Header)

# 替换请求头
^https?://api\.example\.com header-replace User-Agent "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X)"
# 添加请求头
^https?://api\.example\.com header-add X-Forwarded-For 1.1.1.1
# 删除请求头
^https?://api\.example\.com header-del X-Requested-With

响应体修改(需开启MITM)

# 替换响应体文本(JSON/XML等)
^https?://api\.example\.com/v1/user response-body-replace "is_vip\":false" "is_vip\":true"
# 正则替换
^https?://api\.example\.com/v1/ads response-body-replace-regex "<div class=\"ad\">[\s\S]*?</div>" ""

请求体修改(需开启MITM)

# 修改POST数据
^https?://api\.example\.com/upload request-body-replace "old_version" "new_version"

拦截(Reject)

# 直接拦截请求(用于去广告)
^https?://ad\.example\.com reject
^https?://track\.analytics\.com reject-dict

完整配置示例

[URL Rewrite]
# 强制HTTPS
^https?://www\.example\.com https://www.example.com 302
# 去广告重定向(空响应)
^https?://ads\.example\.com reject
[Header Rewrite]
# 修改User-Agent模拟微信浏览器
^https?://mp\.weixin\.qq\.com 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(0x18000000) NetType/WIFI Language/zh_CN"
# 添加Authorization
^https?://api\.service\.com header-add Authorization "Bearer token123"
[Body Rewrite]
# 解锁VIP(需MITM)
^https?://api\.music\.com/vip/status response-body-replace "vip\":0" "vip\":1"

配置步骤

添加Rewrite规则

  1. 打开 Shadowrocket → 配置 → 选择配置文件 → 编辑
  2. 找到 Rewrite 模块(或添加 [URL Rewrite][Header Rewrite] 区块)
  3. 粘贴规则

开启MITM(修改Body必需)

如需修改响应体/请求体,必须配置MITM:

  1. 设置证书生成新的CA证书
  2. 安装描述文件(设置 → 通用 → VPN与设备管理 → 安装)
  3. 关于本机证书信任设置 → 开启 Shadowrocket 证书
  4. 在配置中启用 MITM
    [MITM]
    hostname = api.example.com, *.service.com

启用Rewrite

  • 主界面 → 全局路由选择 配置 模式
  • 确保 Rewrite 开关已开启(设置 → 高级 → Rewrite)

注意事项

  1. HTTPS限制:修改Body必须安装并信任MITM证书,且域名需在 [MITM]hostname 中声明
  2. 性能影响:过多正则匹配会影响网速,建议精简规则
  3. 语法严格:正则表达式需转义特殊字符(如 → \.
  4. iOS限制:部分App使用SSL Pinning,无法MITM解密
  5. 备份配置:修改前建议导出配置备份

调试技巧

  • 查看日志:设置日志,观察请求是否匹配规则
  • 测试正则:使用在线正则工具(如 regex101.com)测试 Pattern
  • 分步验证:先使用 302 重定向测试连通性,再尝试Body修改

需要特定功能的脚本(如某App去广告、解锁)可以提供具体URL,我可以帮你编写对应的正则规则。

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