我在 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 文档了解更多信息目录名称插值示例。