nginx 配置 302 重定向最适合临时活动跳转,推荐用 return 指令实现简洁高效跳转,自动保留 $request_uri 参数,避免 rewrite 循环风险;需确保协议($scheme)和 host($host)动态匹配,实测 curl -i 验证响应头。

临时活动引导跳转,比如促销页、灰度测试页或短期落地页,用 Nginx 配置 302 重定向最稳妥——它不干扰原 URL 的 SEO 权重,也不被浏览器长期缓存,适合“今天有、明天可能撤”的场景。
直接用 return 指令(推荐)
简洁、高效、无正则开销,适合明确的单域名跳转:
- 配置示例(将 promo.old.com 全部临时跳到新活动页):
server {
listen 80;
server_name promo.old.com;
return 302 https://event.new.com$request_uri;
}
- $request_uri 自动保留原始路径和查询参数(如 /?utm_source=ad),用户点击带参链接也能正确跳转
- 不用 rewrite 模块,避免因正则误配导致循环跳转或 404
按路径做条件跳转
如果只对特定路径启用临时跳转(例如仅 /campaign/ 下所有请求),用 location + return 更精准:
- 示例(仅活动子路径临时跳转):
location ^~ /campaign/ {
return 302 https://new-event.site/campaign/$1;
}
- ^~ 表示前缀匹配,比正则更轻量;$1 不适用,这里应直接用 $request_uri 或手动拼接
- 更稳妥写法:return 302 https://new-event.site$request_uri;(保持路径结构一致)
注意协议与 Host 一致性
用户从 HTTPS 进来,后端却返回 HTTP Location,浏览器会拦截或跳转失败:
- 确保目标地址协议匹配:用 $scheme:// 动态拼接,而非硬写 http://
- 若跳转目标依赖 Host(如多租户活动页),用 $host 而非固定域名,避免跨环境失效
- 示例:return 302 $scheme://$host/activity-2026-summer$request_uri;
验证是否生效
别只看配置文件,实测响应头才可靠:
- 用 curl 检查状态码和 Location 头:curl -I http://promo.old.com/test
- 确认返回头含 HTTP/1.1 302 Found 和正确的 Location: 值
- 打开浏览器开发者工具 → Network 标签 → 查看跳转请求的 Response Headers











