Apache:对多个虚拟主机使用相同的目录指令

Apache:对多个虚拟主机使用相同的目录指令

以下是 VirtualHost 条目的示例

<VirtualHost *:80>
  ServerName domain.com
  ErrorLog logs/domain.com-error_log
  CustomLog logs/domain.com-access_log common
  DocumentRoot "/var/www/srs/web"
  DirectoryIndex index.php
  Alias /sf /usr/share/pear/data/symfony/web/sf
  <Directory "/usr/share/pear/data/symfony/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
  <Directory "/var/www/srs/web">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

现在,我还有 6 个其他域需要以这种方式设置。它们都将共享一个 DcoumentRoot,因此我唯一需要设置的、每个域唯一的值是 ServerName 和 *Log 值。由于我处理这类事情时大多是复制粘贴,所以我准备要做的只是复制这个块 6 次并更改我需要的位。

那么,我至少可以提取目录条目并以某种方式使其全球化吗?

答案1

将您的目录节拉出您的 VirtualHost 容器之外,它就会执行您想要的操作。

<VirtualHost *:80>
  ServerName domain.com
  ErrorLog logs/domain.com-error_log
  CustomLog logs/domain.com-access_log common
  DocumentRoot "/var/www/srs/web"
  DirectoryIndex index.php
  Alias /sf /usr/share/pear/data/symfony/web/sf
</VirtualHost>

<VirtualHost *:80>
  ServerName domain2.com
  ErrorLog logs/domain2.com-error_log
  CustomLog logs/domain2.com-access_log common
  DocumentRoot "/var/www/srs/web"
  DirectoryIndex index.php
  Alias /sf /usr/share/pear/data/symfony/web/sf
</VirtualHost>

<Directory "/usr/share/pear/data/symfony/web/sf">
  AllowOverride All
  Allow from All
</Directory>
<Directory "/var/www/srs/web">
  AllowOverride All
  Allow from All
</Directory>

相关内容