0

Nginx return 301 保留参数后404错误?5个排查方向彻底解决问题

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辅助作者原创,未经许可,转载请保留原文链接。

发表评论