nginx 服务静态文件的所有请求到一个目录和它的子目录

8xiog9wr  于 5个月前  发布在  Nginx
关注(0)|答案(1)|浏览(63)

我想显示一个特定的静态页面的所有请求的一个目录和它的子目录。

http://www.mywebsite.com/folder/* -> /www/external/static.html

字符串
我试过以下哪种工作,但它不显示文件,它下载文件;

location ~ ^/folder/* {
    alias      /www/external/index.html;   
}


我只是想让它显示任何请求的index.html的内容

djmepvbi

djmepvbi1#

您应该使用try_files而不是alias来指定要检索的文件。这还应该设置正确的Content-Type,以便显示文件而不是下载文件。
举例来说:

location ^~ /folder/ { 
    root /www/external;
    try_files /index.html =404;
}

字符串
如果/www/external/index.html存在,则不会到达=404,但这是必要的,因为try_files需要至少两个参数。
我使用了前缀位置和^~运算符,它匹配任何以**/folder/开头的URL。
您使用了正则表达式^/folder/*,它匹配/folder/folder//folder///folder///等。
我不知道你的要求是什么,如果你只想匹配目录和子目录的URL,而不是**中的文件,请使用正则表达式匹配以/folder开始,a /结尾的URL。
举例来说:

location ~* ^/folder/(.*/)?$

相关问题