Nginx:try_fiiles 指令与路径变量

Nginx:try_fiiles 指令与路径变量

我已经设置了一个如下所示的服务器块:

root /var/www/platform

location / {
 index index.html;
}

location /contact {
 try_files $uri /contact.html;
}

这很好用。我可以转到x.com/contactcontact.html加载页面。

现在我想添加一个products包含诸如 等文件的子目录product1.html。当用户访问时,x.com/products/product1我想加载 html 文件。

因为products子目录在platform目录中,所以x.com/products/product1.html与当前 ^ 设置配合得很好。我只是想摆脱.html末尾的需要。

所以我尝试添加位置块

location /products/(product) {
 root /products;
 try_files /$1.html $1.html /index.html;
}

但显然这不起作用。任何帮助都将不胜感激。

如果有其他更好的(但仍然简单)的方法,我也很想知道。

答案1

Richard 基本上在评论中回答了这个问题(我写这篇文章是为了从未回答的问题列表中删除这个问题)。有效的解决方案是添加此位置块:

location /products/ {
 try_files $uri $uri.html /index.html
}

相关内容