Nginx uri每域重写

时间:2017-11-01 16:10:26

标签: nginx

我有几个域指向同一台服务器,例如:

server_name www.domain1.dev www.domain2.dev www.domain3.dev

大多数配置都是相同的,它们指向相同的php文件,但我为每个域都有一个不同的资源文件夹:

/www.domain1.dev/assets/
/www.domain2.dev/assets/
/www.domain3.dev/assets/

这就是我想将http://www.domain1.dev/assets/*等请求重写为http://www.domain1.dev/www.domain1.dev/assets/*

的原因

尝试使用location - return,但未找到如何获取当前域名。

1 个答案:

答案 0 :(得分:1)

当前请求的域名可以在$host$http_host中。有关差异,请参阅this document

例如:

location ^~ /assets {
    root /path/to/root/$host;
}

或者:

location ^~ /assets {
    return 301 /$host$request_uri;
}

另一种方法是将您的域名分隔为单独的server块,并使用include语句来提取公共内容。