302重定向最适合临时流量分发场景,如a/b测试、灰度发布、活动页导流或短期维护,因其不干扰搜索引擎索引、每次请求都经服务端判断且灵活可控;推荐使用return指令配置,支持路径保留($request_uri)、条件匹配(location/if)及避免缓存误用。

临时流量分发跳转,比如做A/B测试、灰度发布、活动页导流或短期维护页面切换,用Nginx配置302重定向最合适——它不干扰搜索引擎对原URL的索引和权重积累,且每次请求都走服务端判断,灵活可控。
核心配置方式:用 return 指令(推荐)
这是最简洁、高效、不易出错的方式,Nginx原生支持,性能优于 rewrite,也避免循环跳转风险:
- 基本语法:
return 302 ; - 保留原始路径和参数,用
$request_uri变量:return 302 https://test.example.com$request_uri; - 若目标是同域名下的内部路径(如维护页),可写相对地址:
return 302 /maintenance.html;
按条件精准分发:结合 if 或 location 使用
真实场景中,往往不是全站跳转,而是满足特定条件才触发。例如只对部分用户IP、特定UA或某类路径启用302:
- 按路径匹配(如所有 /promo/ 开头的请求):
location ^~ /promo/ {<br> return 302 https://event.new.com$request_uri;<br>} - 按请求头或变量判断(需谨慎,if 在 location 外有局限):
if ($http_user_agent ~* "beta-tester") {<br> return 302 https://beta.example.com$request_uri;<br>}
避坑要点:别让302变“伪永久”
302本意是临时,但配置不当可能被浏览器或CDN缓存,失去灵活性:
- 避免在 return 后加
add_header Cache-Control "public, max-age=3600"类缓存头,除非你明确需要短时缓存 - 不要混用 rewrite + redirect flag 做简单跳转,容易因正则误配导致无限重定向(比如漏写
$1或路径重复) - 上线前务必用 curl 验证:
curl -I http://your-domain.com/some-path—— 确认响应头含HTTP/1.1 302 Found和正确Location值
对比场景:什么情况该选302而不是301?
记住一个判断原则:只要未来还想让流量回到原地址,就选302。
- ✅ 正确用法:新活动页上线7天、后台系统维护2小时、灰度放量10%用户、AB测试两个落地页轮播
- ❌ 错误用法:把老域名永久停用却配302、HTTPS全站迁移只配302、内容已彻底迁移到新路径还用302











