2026.05.30 | youres | 3次围观
问题现象
在 Nginx 配置中,为了让 HTTP 跳转 HTTPS 时保留查询参数,很多人会用 return 301 的配置方式。配置看起来没问题,但跳转后浏览器却报 404。
原因一:路径不匹配
HTTPS server 块的 root 路径配置错误,导致跳转后找不到文件。
原因二:双斜杠问题
return 301 https://$host/$request_uri 多写了一个斜杠,导致 //path 匹配不到 location。
原因三:location 缺失
HTTPS server 块里没有 location / 兜底配置。
原因四:URL 编码异常
查询参数中的特殊字符未正确编码,导致路径解析异常。
原因五:CDN 中间层修改路径
CDN 或负载均衡在中间修改了请求路径,导致后端 404。
正确配置模板
server {
listen 80;
server_name www.example.com;
return 301 https://www.example.com$request_uri;
}
相关文章
版权声明
本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论