我的网站目录如下,
Sites
- site 1
index.html
- site 2
- docs
index.html
我喜欢以这样的方式设置Nginx服务器:如果位置为/site1
,则服务器应为index.html
;如果位置为site2
,则应尝试是否存在任何服务器index.html
(如果不是从docs/index.html
投放)。我试图以不同的方式来获得它,其中之一是,
server {
listen 80;
server_name courses.myserver.com;
location /site1 {
root /Sites/site 1;
index index.html index.htm;
}
location /site2 {
root /Sites/site2;
try_files $uri $uri/ $uri/docs/;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
但是它没有按照我的意愿去做。
答案 0 :(得分:0)
通过将root
的值连接到URI的值来形成文件的路径。您的URI已经包含“ site1”,因此root
的值不应包含。有关详细信息,请参见this document。
查看目录结构,您可能会对所有位置使用相同的root
值,在这种情况下,应将其放在server
块中,并允许每个{{1} }继承相同的值。
例如:
location
对于以root /Sites;
index index.html index.htm;
location /site1 {
}
location /site2 {
...
}
结尾的URI调用index
指令。如果要针对/
结尾的URI测试index.html
和docs/index.html
,可以将特殊情况添加到/
指令中。
例如:
index
或者,如果您希望将location /site2 {
index index.html index.htm docs/index.html;
}
用作与文件或索引不匹配的任何URI的默认值,请将默认URI添加到docs/index.html
语句的末尾。有关详细信息,请参见this document。
例如:
try_files