这是我的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中有错误吗?
答案 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访问,将获得不匹配文件夹中列出的文件