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

Pet*_*ley 9 virtualhost apache-2.2

这是一个示例 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>
Run Code Online (Sandbox Code Playgroud)

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

那么,我可以至少拉出目录条目并以某种方式将它们全球化吗?

Mik*_*eyB 12

将您的目录节拉到您的 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>
Run Code Online (Sandbox Code Playgroud)