You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx访问/yyy返回301永久重定向,配置未生效求助

Nginx 301重定向问题排查与解决

问题原因

当你访问http://localhost/yyy时,Nginx检测到/yyy是一个目录(你的文件存放在/yyy/xxx.html,说明/yyy是目录),而请求URI末尾没有斜杠,Nginx默认会发送301重定向到带斜杠的/yyy/,这是Nginx处理目录请求的默认行为。

解决方案

方案1:添加文件匹配规则,直接返回目标内容

调整配置,让Nginx在访问/yyy时优先匹配目标文件,避免触发目录重定向:

server {
    listen       80;
    server_name  localhost;

    location /yyy {
        root /;
        index xxx.html;
        # 依次尝试匹配URI本身、目录,最后直接指定目标文件
        try_files $uri $uri/ /yyy/xxx.html;
    }
}

方案2:单独处理无斜杠的请求

显式匹配不带斜杠的/yyy请求,直接指向目标文件:

server {
    listen       80;
    server_name  localhost;

    # 精准匹配不带斜杠的/yyy请求
    location = /yyy {
        root /;
        rewrite ^ /yyy/xxx.html last;
    }

    # 处理带斜杠的/yyy/请求
    location /yyy/ {
        root /;
        index xxx.html;
    }
}

方案3:关闭自动目录重定向(不推荐,影响全局目录行为)

在server块中添加指令,关闭Nginx自动补全斜杠的重定向逻辑:

server {
    listen       80;
    server_name  localhost;
    absolute_redirect off;

    location /yyy {
        root /;
        index xxx.html;
    }
}

验证步骤

修改配置后,执行nginx -s reload重新加载配置,再次访问http://localhost/yyy即可直接返回xxx.html的内容。

内容的提问来源于stack exchange,提问作者ki pik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 10:22:11