小编Mik*_*ike的帖子

Apache 2.2忽略了VirtualDocumentRoot VirtualHosts?

我有几个域,我希望通过mod_vhost_alias启用通配符子域

包含在我的httpd.conf中我有以下通用规则:

<VirtualHost [ip here]:80>
    ServerName domain1.com
    ServerAlias www.domain1.com
    DocumentRoot /home/user1/public_html
</VirtualHost>
<VirtualHost [ip here]:80>
    ServerName *.domain1.com
    VirtualDocumentRoot /home/user1/subdomains/%-3+
</VirtualHost> 

<VirtualHost [ip here]:80>
    ServerName domain2.com
    ServerAlias www.domain2.com
    DocumentRoot /home/user2/public_html
</VirtualHost>
<VirtualHost [ip here]:80>
    ServerName *.domain2.com
    VirtualDocumentRoot /home/user2/subdomains/%-3+
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

问题是apache完全忽略了带有通配符ServerNames的虚拟主机.对test.domain1.com或test.domain2.com的任何请求都只显示/ home/user1/public_html(根据apache的默认规则)的内容.

其他一些信息:

/home/user1/subdomains/test并且/home/user2/subdomains/test它们都存在并且包含文件

我的所有域都有一个在bind config中列出的通配符子域,它们指向Vhost规则中指定的相同IP.子域的标准Vhost规则有效,但不是通配符.

一个剪切版本的输出 httpd -S

# httpd -S
VirtualHost configuration:
[ip here]:80      is a NameVirtualHost
         default server domain1.com (/etc/httpd/sites/user1:1)
         port 80 namevhost domain1.com (/etc/httpd/sites/user1:1)
         port 80 namevhost *.domain1.com (/etc/httpd/sites/user1:14)
         port 80 namevhost domain2.com (/etc/httpd/sites/user2:1)
         port …

apache apache2 virtualhost httpd.conf

4
推荐指数
1
解决办法
7139
查看次数

标签 统计

apache ×1

apache2 ×1

httpd.conf ×1

virtualhost ×1