企业门户https改版需实现http→https与旧路径→新路径双重兼容:nginx中http server用return 301 https://$host$request_uri强制跳转;https server通过return 301或map精准映射路径;同步配置hsts、robots.txt、sitemap并灰度验证。

企业门户改版时,确保所有外部历史链接在启用 HTTPS 后仍能正常跳转,核心是做好 HTTP → HTTPS + 旧路径 → 新路径 的双重兼容。Nginx 配置需兼顾协议升级与 URL 结构迁移,不能只做简单 301 跳转。
强制 HTTPS 并保留原始路径
所有 HTTP 请求必须无条件跳转到对应 HTTPS 地址,且不改变 URI 路径。这是基础,否则外部收录链接会直接 404。
- 在 HTTP server 块中配置
return 301 https://$host$request_uri; - 避免用
$scheme或拼接域名,防止子域名或端口异常;$host和$request_uri可精准还原用户访问的完整路径 - 确保 SSL 证书已正确加载(推荐使用云平台申请并自动续期的泛域名证书)
按旧 URL 规则批量映射新路径
如果改版涉及目录结构调整(如 /product/123.html → /items/detail?id=123),需用 rewrite 或 return 显式声明映射关系,而非依赖前端路由。
- 优先使用
return 301(比 rewrite 更快、更安全),例如:location ^~ /product/ { return 301 https://example.com/items/detail?id=$arg_id; } - 对大量静态路径,可引入 map 指令预定义映射表,减少重复判断
- 避免在 location 中嵌套多层 if,易引发重写循环或匹配失效
兼容百度等搜索引擎的抓取习惯
外部链接不仅来自用户,更大量来自搜索引擎缓存页。要让百度 Spider 快速识别新版结构并更新索引,需配合 Nginx 行为做协同优化。
- 在 HTTPS server 块中确保
robots.txt允许爬虫访问新路径,并屏蔽已下线的旧后台路径 - 响应头中添加
Strict-Transport-Security(HSTS),让浏览器和爬虫强制走 HTTPS - 提交新版 sitemap.xml 至百度资源平台,同时在 Nginx 中对
/sitemap.xml请求返回最新文件(可软链或 alias 到生成目录)
上线前验证与灰度策略
配置生效后,必须验证真实外部链接行为,不能仅测首页或内部跳转。
- 用 curl 模拟历史链接:
curl -I http://old-domain.com/news/2020/abc.html,确认返回 301 + 正确目标地址 - 检查响应头是否含
Location、Content-Type和 HSTS 字段 - 对高流量旧路径(如首页、产品列表页)先加 access_log 记录原始请求,观察 3–5 天再全量放开











