我的httpd.conf中有错误吗?

时间:2015-06-11 06:51:27

标签: apache

这是我的httpd.conf

    <VirtualHost *:80>
    ServerName m.testaaaa.com
    # ServerAlias m.testaaaa.org
    ServerAdmin admin@testaaaa.com
    ErrorLog /var/log/httpd/testaaaa.err
    CustomLog /var/log/httpd/testaaaa.log combined
    DocumentRoot /var/www/html/m.testaaaa.com
    <Directory "/var/www/html/m.testaaaa.com">
    Order allow,deny
    Allow from all
    </Directory>
   </VirtualHost>

   <VirtualHost *:80>
    ServerName testaaaa.com
    ServerAlias www.testaaaa.org
    ServerAdmin admin@testaaaa.com
    ErrorLog /var/log/httpd/testaaaa.err
    CustomLog /var/log/httpd/testaaaa.log combined
    DocumentRoot /var/www/html/testaaaa.com
    <Directory "/var/www/html/testaaaa.com">
    Order allow,deny
    Allow from all
    </Directory>
    </VirtualHost>

它有效,但为什么当我在浏览器中打开http://192.168.0.110/(服务器ip)时,httpd会显示与http://m.testaaaa.com相同的网页?

我认为使用192.168.0.110不应该打开http://m.testaaaa.com 因为serverName不是m.testaaaa.com。

我的httpd.conf中有错误吗?

2 个答案:

答案 0 :(得分:1)

这不是错误。

默认情况下,Apache为第一个虚拟主机提供对任何不匹配主机名的请求。

您可以添加新的虚拟主机 m.testaaaa.com,当您通过IP进行寻址时,它将会正常工作。

答案 1 :(得分:1)

<VirtualHost *:80>

将其重定向到DocumentRoot /var/www/html/m.testaaaa.com所有无法匹配的请求

您必须仅为*:80

使用文档根目录
<VirtualHost *:80>
    DocumentRoot "/var/www/html/unmatched"
</VirtualHost>

然后设置每个域:

<VirtualHost domain1:80>
    ServerName domain1
    DocumentRoot "/var/www/html/domain1"
</VirtualHost>

这样,如果您使用IP访问,将获得不匹配文件夹中列出的文件