我在nginx中设置此别名时遇到了很多麻烦,无法正确显示我的网站。
我关注的网站应该可以从mywebsite.com/mr
访问,与位于mywebsite.com/
的网站不同。该网站位于/fullpath
(为简单起见缩短)该网站需要提供三种内容:
/fullpath/index.html
。.html
扩展名)。/fullpath
和子目录中的静态资产(js / css / img)。我已尝试更改try_files
中的匹配顺序,并发现它们都有效的情况,而不是同时发生:
location /mr {
default_type "text/html";
alias /fullpath;
# with this one 1 and 3 work
# try_files $uri/index.html $uri.html $uri;
# with this one 2 and 3 work
# try_files $uri $uri.html $uri/index.html;
# with this one 1 and 2 work
try_files $uri.html $uri/index.html $uri;
}
当一个人不工作时404。有谁知道我如何正确地提供各种文件?
答案 0 :(得分:25)
显然是别名和try_files don't work together。但是,我认为你不需要使用别名。
location /mr {
default_type "text/html";
try_files /fullpath/$uri /fullpath/$uri.html /fullpath/$uri/index.html /fullpath/index.html;
}
哪会尝试:
我认为root指令适用于try文件但无法测试。
server{
location /mr {
root /home/mysite/fullpath;
default_type "text/html";
try_files $uri $uri.html $uri/index.html index.html;
}
}