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

时间:2015-01-27 16:27:49

标签: nginx webserver httpserver

根目录= / 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

1 个答案:

答案 0 :(得分:4)

试试这个

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