在我们的服务器上,我们有/var/www/root/html/web/
目录,其中包含所有代码,以及/var/www/root/html/web/front/
,其中包含我们的静态前端代码。
我们的前端仅通过REST API调用与代码进行通信,后者具有/api/
前缀,因此可以通过ourdomain.com/api/products/
,ourdomain.com/api/products/45
等方式访问所有调用。我们还有一个管理员在ourdomain.com/admin
当我们想要查看实际的前端时,我们必须在浏览器中转到ourdomain.com/front
,这当然不是我们想要的。
在我们的配置中,我们有其他内容:
root /var/www/html/web;
index index.php index.html;
location /front {
# some magic to make sure the /front folder will not be parsed
index nothing_will_match;
autoindex on;
}
但是,我们希望如果您转到ourdomain.com
,它会以root身份加载/var/www/html/web/front/
个文件夹,如果您转到ourdomain.com/api/*
或ourdomain.com/admin/*
,则会加载以/var/www/html/web/
为根。那可能吗?
注意:/var/www/html/web/front/
文件夹可以根据需要移到其他地方,例如/var/www/html/front/
答案 0 :(得分:0)
您需要的是alias
指令(而不是root
)来重写URI:
root /var/www/html/web/front;
index index.php index.html;
location / {
}
location /api {
alias /var/www/html/web/;
}
location /admin {
alias /var/www/html/web/;
}