301永久重定向适用于长期有效的URL变更,如域名迁移、全站HTTPS启用、路径结构固化及多域名归一,确保SEO权重传递与浏览器缓存更新;302临时重定向则用于可随时撤销的场景,如维护页、A/B测试、灰度发布和短期活动页。

关键看跳转是否“长期有效”——不是你主观想不想改,而是搜索引擎和用户浏览器该不该记住这个新地址。
permanent(301)适用于永久性变更
当目标地址已确定为长期稳定的新位置,且需要旧链接的流量、收藏夹、SEO权重完整继承时,必须用 permanent:
- 域名整体迁移:如 old.com 全量切换到 new.com
- 全站启用 HTTPS:所有 http:// 请求跳转至对应 https:// 地址
- URL 路径结构固化调整:例如 /blog/123 → /articles/123.html,不再回调原路径
- 多域名归一:example.com 和 www.example.com 统一指向主域,且长期维持
redirect(302)适用于阶段性或临时性操作
只要跳转可能随时撤回、替换或失效,就该用 redirect:
- 网站临时维护:跳转到 maintenance.html,恢复后直接删规则即可
- A/B 测试:部分用户导流至新版页面,不影响原 URL 的索引与缓存
- 灰度发布:旧接口暂不下线,先用 302 指向新服务验证稳定性
- 活动专题页:如 /2026-festival.html 仅上线两周,结束后跳转自动失效
两个典型误用后果
选错 flag 不只是状态码不同,还可能引发实际问题:
- 把 permanent 错写成 redirect:旧 URL 持续被爬虫抓取,权重无法传递,等想改回来时排名已大幅下滑
- 在 if 块中混用 rewrite + proxy_pass 却没加 break 或 last:请求未终止,继续执行后续逻辑,导致返回 500 或内容错乱
一句话快速判断法
写配置前问自己:“三个月后这个跳转还要存在吗?”
答案是“否”,就用 redirect;
答案是“是”,就用 permanent。


















