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

如何阻止Nginx在URL后自动添加/index.html?Ads.txt别名配置异常求助

解决Nginx ads.txt别名配置的404错误

问题根源

你的错误日志显示Nginx尝试访问/root/public/front/public/ads.txt/index.html,这是因为当请求路径带末尾斜杠(/ads.txt/)时,Nginx默认将其视为目录请求,会自动在alias指定的路径后拼接/index.html。但实际上/root/public/front/public/ads.txt是一个文件而非目录,因此触发"Not a directory"错误。权限调整无效是因为问题本质是配置逻辑错误,而非文件权限。

解决方案

方案1:精确匹配不带斜杠的请求

使用精确匹配语法(=)匹配/ads.txt请求,确保Nginx直接指向目标文件:

location = /ads.txt {
    alias /root/public/front/public/ads.txt;
}

方案2:同时匹配带斜杠和不带斜杠的请求

如果需要兼容带末尾斜杠的请求(/ads.txt/),可以使用正则匹配,同时通过try_files避免自动拼接目录索引:

location ~ ^/ads.txt/?$ {
    alias /root/public/front/public/ads.txt;
    try_files $uri =404;
}

方案3:改用root简化配置

如果目标文件路径符合root的拼接逻辑,用root替代alias更简洁(root会将请求路径拼接在指定目录后):

location = /ads.txt {
    root /root/public/front/public;
}

配置修改后,重启Nginx生效:

nginx -s reload

内容的提问来源于stack exchange,提问作者Guilherme Santiago

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 12:22:06