选302跳转最稳妥,因不传递权重、避免缓存、保持原域名友好;用return方式轻量明确,保留路径与参数;需注意https跳转安全、目标可达性及活动后及时删除配置。

直接用 return 302 最稳妥,适合活动页、短链、维护提示这类短期跳转。
为什么选 302 而不是 301
- 搜索引擎不会把原 URL 的权重转移到新地址,活动结束撤掉跳转后,原页面还能正常收录和排名。
- 浏览器每次都会重新请求服务器,避免缓存导致用户进错页面(比如活动已下线,但用户点开还是跳过去)。
- 地址栏通常保持原域名,对用户更友好(尤其分享链接时)。
配置写法(推荐 return 方式)
server {
listen 80;
server_name promo.example.com;
# 整站临时跳转到活动页
return 302 https://act.newsite.com$uri?$args;
}
-
$uri保留路径(如/product?id=123→/product?id=123) -
$args显式带上查询参数,避免丢失 UTM 或用户来源信息 - 不要用
rewrite ... redirect,它默认也走 302,但return更轻量、更明确、无正则开销
只跳特定路径(比如只导流 /sale 页面)
location = /sale {
return 302 https://act.newsite.com/spring-sale;
}
-
=表示精确匹配,避免误伤/sales或/sale-2024 - 如果要匹配带参数的
/sale?utm=ad,$args会自动拼接,不用额外处理
注意事项
- 别在 HTTPS server 块里跳回 HTTP,容易被浏览器拦截(现代浏览器默认阻止不安全跳转)
- 检查目标地址是否可访问,Nginx 不验证目标有效性,配置错误只会返回 500 或空白页
- 活动结束后,删掉这行配置并重载 nginx(
nginx -s reload),无需清缓存——302 本身不缓存
不复杂但容易忽略











