最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
旧域名停止使用时 Nginx 301 重定向如何设
时间:2026-08-17 12:20:49 编辑:袖梨 来源:一聚教程网
旧域名停用时需用Nginx return指令配置301重定向,分别监听80和443端口(后者需SSL证书),目标统一为https://new-site.com$request_uri,并将规则拆分为独立conf文件通过include引入,修改后须执行nginx -t、nginx -T验证及curl测试。
旧域名停用时,Nginx 的 301 重定向要一次性覆盖所有访问入口,确保用户和搜索引擎都能无缝跳转到新站,同时避免配置混乱或 HTTPS 失效。
只用 return 指令,不写 rewrite
return 比 rewrite 更轻量、更安全,执行更快,且不会触发内部重匹配。直接返回状态码和目标地址即可:
- HTTP 跳转:监听 80 端口,server_name 设为所有旧域名(含 www 和无 www 变体)
- HTTPS 跳转:必须单独配一个 server 块监听 443,且 ssl_certificate 和 key 要能验证 old-site.com(可用通配符或 SAN 证书)
- 目标地址统一用 https://new-site.com$request_uri,保留原始路径和参数
把规则抽成独立文件,用 include 管理
不要把跳转逻辑硬塞进主站配置里。推荐在 /etc/nginx/conf.d/ 下新建:
- /etc/nginx/conf.d/redirect-old-site.conf
- 里面只放两个 server 块:一个 listen 80,一个 listen 443 ssl
- 主配置(如 sites-available/default)中,在 http 块末尾或对应 server 块外加一行:include /etc/nginx/conf.d/redirect-old-site.conf;
多旧域名就分多个文件,方便开关
如果有 old1.com、old2.com、legacy.net 等多个停用域名,每个都建独立 conf 文件:
- /etc/nginx/conf.d/redirect-old1.conf
- /etc/nginx/conf.d/redirect-old2.conf
- 临时禁用某条规则?直接重命名,比如改成 redirect-old1.conf.off,Nginx reload 后自动忽略
验证三步不能少
改完别急着 reload,按顺序检查:
- 运行 nginx -t:确认语法正确,include 路径存在、文件可读
- 运行 nginx -T | grep -A 5 "old-site.com":看实际加载的配置里有没有你写的 server 块
- 用 curl -I http://old-site.com/test?x=1 和 curl -I https://old-site.com/test 分别测试,响应头必须含 301 Moved Permanently 和正确的 Location
相关文章
- 小米路由器4a百兆和千兆的区别 08-17
- 算力消耗高、反复重绘太费钱?知漫剧永久角色资产降低制作成本 08-17
- 没想到这年头,做AI效果图的团队,还能融到数百万美元 08-17
- 免费学!重庆上新173门AI课程 面向全社会开放 08-17
- AI Agent从0到1定制开发 全栈/全流程/企业级落地实战 08-17
- 全球首富红眼All in,马斯克600亿收购Cursor,挤上ASI末班车 08-17