我正在尝试使用 nginx 实现以下设置:
- 使用 index.html 表示 '/'
- 清理 .html 网址
- 如果没有找到相应的文件,则默认为 404
我的服务器块如下所示:
server {
listen 80;
server_name 127.0.0.1;
index index.htm;
location / {
root "static";
try_files $uri.html =404;
}
}
现在,访问 '/' 会转到 404。我尝试过一些常见的解决方案,例如:
try_files $uri.html $uri/ =404;
但是这些允许'/page'和'/page.html'作为有效的url,并且我想避免重复。
有什么建议么?
答案1
您的root
指令有两个问题:
- 它使用相对路径。当使用相对路径时,它是相对于编译到 nginx 中的默认目录。你知道那是哪一个吗?最好指定绝对路径。
- 它的位置不对。该
root
指令应该在块中指定server
。这是最常见的 nginx 配置错误。