我想显示一个特定的静态页面的所有请求的一个目录和它的子目录。
http://www.mywebsite.com/folder/* -> /www/external/static.html
字符串我试过以下哪种工作,但它不显示文件,它下载文件;
location ~ ^/folder/* { alias /www/external/index.html; }
型我只是想让它显示任何请求的index.html的内容
djmepvbi1#
您应该使用try_files而不是alias来指定要检索的文件。这还应该设置正确的Content-Type,以便显示文件而不是下载文件。举例来说:
try_files
alias
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。举例来说:
/www/external/index.html
=404
^~
/folder/
^/folder/*
/folder
/folder//
/folder///
/
location ~* ^/folder/(.*/)?$
型
1条答案
按热度按时间djmepvbi1#
您应该使用
try_files
而不是alias
来指定要检索的文件。这还应该设置正确的Content-Type,以便显示文件而不是下载文件。举例来说:
字符串
如果
/www/external/index.html
存在,则不会到达=404
,但这是必要的,因为try_files需要至少两个参数。我使用了前缀位置和
^~
运算符,它匹配任何以**/folder/
开头的URL。您使用了正则表达式
^/folder/*
,它匹配/folder
、/folder/
、/folder//
、/folder///
等。我不知道你的要求是什么,如果你只想匹配目录和子目录的URL,而不是**中的文件,请使用正则表达式匹配以
/folder
开始,以a/
结尾的URL。举例来说:
型