Apache VirtualDocumentRoot指令显示不正确的根目录

Apache VirtualDocumentRoot指令显示不正确的根目录,apache,httpd.conf,Apache,Httpd.conf,我正在两个域上设置虚拟主机。 各种子域都有自己的docroot <VirtualHost *:80> ServerName *.domain1.com VirtualDocumentRoot /var/www/domain1/%1/ </VirtualHost> <VirtualHost *:80> ServerName *.domain2.com VirtualDocumentRoot /var

我正在两个域上设置虚拟主机。 各种子域都有自己的docroot

<VirtualHost *:80>
        ServerName *.domain1.com
        VirtualDocumentRoot /var/www/domain1/%1/
</VirtualHost>
<VirtualHost *:80>
        ServerName *.domain2.com
        VirtualDocumentRoot /var/www/domain2/%1/
</VirtualHost>

ServerName*.domain1.com
VirtualDocumentRoot/var/www/domain1/%1/
ServerName*.domain2.com
VirtualDocumentRoot/var/www/domain2/%1/
访问

应该显示

  • /var/www/domain2/www/
但它却在寻找

  • /var/www/domain1/www/
出什么问题了?

试试这个:

<VirtualHost *:80>
        ServerName domain1.com
        ServerAlias *.domain1.com
        DocumentRoot /var/www/domain1/
</VirtualHost>
<VirtualHost *:80>
        ServerName domain2.com
        ServerAlias *.domain2.com
        DocumentRoot /var/www/domain2/
</VirtualHost>

ServerName域名1.com
ServerAlias*.domain1.com
DocumentRoot/var/www/domain1/
ServerName域名2.com
ServerAlias*.domain2.com
DocumentRoot/var/www/domain2/

我认为您需要udo提到的
ServerAlias
选项来防止一个虚拟主机捕获所有内容。试试这个:

<VirtualHost *:80>
        ServerName domain1.com
        ServerAlias *.domain1.com
        VirtualDocumentRoot /var/www/domain1/%1/
</VirtualHost>
<VirtualHost *:80>
        ServerName domain2.com
        ServerAlias *.domain2.com
        VirtualDocumentRoot /var/www/domain2/%1/
</VirtualHost>

ServerName域名1.com
ServerAlias*.domain1.com
VirtualDocumentRoot/var/www/domain1/%1/
ServerName域名2.com
ServerAlias*.domain2.com
VirtualDocumentRoot/var/www/domain2/%1/