Nginx根位置

时间:2015-10-19 09:37:25

标签: nginx configuration location vhosts

在我们的服务器上,我们有/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/

1 个答案:

答案 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/;
}