我想将请求转移到特定的子目录,转移到另一个根位置。如何?我现有的块是:
server {
listen 80;
server_name www.domain.com;
location / {
root /home/me/Documents/site1;
index index.html;
}
location /petproject {
root /home/me/pet-Project/website;
index index.html;
rewrite ^/petproject(.*)$ /$1;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
} }
也就是说,http://www.domain.com应该服务于 /home/me/Documents/site1/index.html 而http://www.domain.com/petproject应该服务于 /home/me/pet-Project/website /index.html - 似乎 nginx 在替换后重新运行了所有规则,而http://www.domain.com/petproject只是服务于 /home/me/Documents/site1/index.html 。
配置有通常发生在 nginx 上的常见问题。也就是说,在块
root
内使用指令。location
尝试使用此配置而不是您当前的
location
块:这意味着您网站的默认目录是
/home/me/Documents/site1
,对于/petproject
URI,内容是从/home/me/pet-Project/website
目录提供的。您需要将
break
标志添加到重写规则中,以便处理停止,并且由于这是在位置块内,处理将在该块内继续:请注意,我还添加
/?
了匹配模式,这样您就不会在 url 的开头出现双斜杠。