conf 文件是否包含多个站点的通配符?

conf 文件是否包含多个站点的通配符?

我在 drupal 7 中设置了 50 个具有独立数据库的站点,并在 centos 7 的终端中对其进行管理,我想知道是否有一种方法可以避免将它们全部列在自定义conf文件中,因为它们都具有相同的域名,只是不同子域。在 /etc/httpd/conf.d/foo.conf 中使用 apache .. 有没有一种方法可以使所有 50 个都可以在代码的一个括号中排序?考虑到每个目录的唯一区别是数字。所以就有 foo1.foo.com foo2.foo.com 等等。而不是在我拥有站点 foo1 到 foo50 的文件中重复五十次:

<VirtualHost *:80>
ServerName foo1.foo.com
ServerAlias www.foo1.foo.com
ServerAdmin [email protected]
DocumentRoot "/var/www/html/foo1.foo.com"
<Directory /var/www/html/xxx.x.xxx.xxx/foo1.foo.com>
AllowOverride All
Allow from all
</Directory>
</VirtualHost>

答案1

我还没有测试过这个,但你可以尝试做这样的事情:

<VirtualHost *:80>
   ServerName *.foo.com
   VirtualDocumentRoot "/var/www/html/%0"
   <Directory /var/www/html/%0>
     AllowOverride All
     Allow from all
   </Directory>
</VirtualHost>

%0参数表示地址中的整个字符串。一个例子是,如果有人去了foo1.foo.com=> /var/www/foo1.foo.com。或者,如果有人尝试foo2.foo.com,它就会变成/var/www/foo2.foo.com。查看 apache 文档了解更多信息目录名称插值示例

相关内容