我的服务器使用 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;
}