根据域名动态提供网站根目录

时间:2016-04-04 00:53:52

标签: nginx

我有一个托管多个域名的服务器。根据域名,我希望根据该域名为相应目录提供文件。例如:

www.domainA.com提供/var/www/html/domainA.com

中的文件

www.domainB.com提供/var/www/html/domainB.com

中的文件

等。这样我每次添加网站时都不必编辑配置文件。在Apache中我做到了这样:

RewriteEngine on
RewriteMap    lowercase int:tolower
RewriteCond   ${lowercase:%{HTTP_HOST}}   ^(www\.)?(.*)$
RewriteRule   ^(.*) /var/www/html/%2/$1

我怎样才能在nginx中做同样的事情?

1 个答案:

答案 0 :(得分:1)

使用服务器块之外的地图从$host变量中捕获域名。

map $host $domain_name {
   ~(?<domain>[^.]+\.[^.]+)$ $domain;
}

然后将新的$domain_name变量添加到根语句中。请注意,$host已标准化为小写,因此您的域目录也应为小写。

root  /var/www/html/$domain_name;

确保您已将服务器设置为默认值。