我正在尝试使用nginx。我正在尝试为我的配置文件中声明的每个位置提供特定的index.html文件,如
location / {
root /usr/src/seo/homepage;
}
location ~ /mypage {
root /usr/src/seo/mypage;
}
location ~ /mypage2 {
root /usr/src/seo/mypage2;
}
指定的每个文件夹位置都有自己的index.html文件。但是当我尝试访问 mypage 和 mypage2 时,nginx会返回404.我希望它能够呈现它的各个index.html
UPDATE !!! 使用别名解决了它:
location / {
alias /usr/src/seo/homepage;
}
location ~ /mypage {
alias /usr/src/seo/mypage;
}
location ~ /mypage2 {
alias /usr/src/seo/mypage2;
}
答案 0 :(得分:0)
来自the docs:
要获取所请求文件的路径,NGINX会将请求URI附加到
root
指令指定的路径
即。请求/mypage
时,nginx会尝试查找/usr/src/seo/mypage/mypage
。
要解决这个问题,mypage
和mypage2
的位置块应该类似于
location ~ /(mypage|mypage2) {
root /usr/src/seo;
}
然而,这要求请求以/
的斜杠index
结束才能工作。因此,包含try_files
:
location ~ /(mypage|mypage2) {
root /usr/src/seo;
try_files $uri $uri/ =404;
}