基本上,我正在尝试处理映射到服务器上实际 HTML 文件的良好 URL。
我有如下 URL:
/posts/nice-blog-post/
需要返回文件系统上的 HTML 文件,例如:
/path/to/site/posts/nice-blog-post.html
我目前拥有的位置指令是:
location ^~ /(.*)/$ {
alias /path/to/site/$1.html;
}
此类工作有效,但只有以下 URL 能够成功解析:
domain.com/posts/nice-blog-post
此 URL(带有尾部斜杠)返回 404:
domain.com/posts/nice-blog-post/
所以我有两个问题:
- 如何正确解析带有尾部斜杠的 URL?
- 更重要的是,当 nginx 处理别名时,它似乎没有返回任何响应标头。然后 HTML 文件作为文件下载,而不是呈现到浏览器。
答案1
您需要更改正则表达式,以便它能够处理两种方式 - 带斜线和不带斜线。我想应该是这样的:
location ^~ /(.*)/?$ {
alias /path/to/site/$1.html;
}