nginx:使用 try_files 来提供文件而不是目录

nginx:使用 try_files 来提供文件而不是目录

我的服务器使用 nginx,我的域名提供静态 html 网页,即

http://server.com/download.html

由于各种原因,我希望用户能够download.html通过以下 URL 进行获取:

http://server.com/download.html  (works)
http://server.com/download       (works)
http://server.com/download/      (works not)

我让前两个正常工作,但最后一个总是返回/404.html。

try_files能做我想做的事吗,还是我必须使用指令rewrite

我的 nginx 配置:

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri.html $uri/ /404.html;
    # auth_basic "Restricted";
    # auth_basic_user_file /var/www/upscaledb/htpasswd;
}

谢谢,克里斯托弗

答案1

如果您添加一个位置来重写不带尾部斜杠的 URI,那么您现有的location /andtry_files指令可以完成剩下的工作:

location ~ ./$ { 
    rewrite ^(.+)/$ $1 last; 
}

相关内容