在 Nginx 中提供静态 HTML 文件而不在 url 中提供扩展名

Serving static HTML files in Nginx without extension in url

根目录=/srv/myproject/xyz/main/

在 "main" 文件夹中,我有几个 *.html 文件,我希望所有文件都指向 url 说 /test/ (这是完全不同的从目录结构)

这是我最基本的 nginx 配置

server {
    listen                80;
    error_log   /var/log/testc.error.log;

    location /test/ {
         root   /srv/myproject/xyz/main/;
         #alias /srv/myproject/xyz/main/;
         default_type   "text/html";
         try_files  $uri.html ;
    }
}

如果我使用简单的别名

location /test/ {
       alias /srv/myproject/xyz/main/;   
}

然后它的工作完美,我的意思是我可以通过 http://www.myurl.com/test/firstfile.html 等访问那些 html 文件

但我不想要那个 html 扩展名。

我尝试关注这些主题但没有成功 http://forum.nginx.org/read.php?11,201491,201494

How to remove both .php and .html extensions from url using NGINX?

how to serve html files in nginx without showing the extension in this alias setup

试试这个

location ~ ^/test/(.*)$ {
    alias /srv/myproject/xyz/main/;
    try_files .html =404;
}