需要配置一个环境,我在hosts中,配置了一个地址,比如:
127.0.0.1 xj.local
通过Ping xj.local,可以看出来是访问的主机,
Pinging xj.local [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
然后,我在浏览器中,输入:xj.local,居然没有报错,奇怪吧,因为我还没有在apache服务器的htdoc目录下,配置该虚拟主机对应的
目录地址,原来原理是这样的,当用户输入了一个不存在的虚拟地址的时候,当服务器检测到访问的是本地的服务器,它会从用户配置的
虚拟目录中,默认找到第一个地址,比如:
<VirtualHost *:80>
DocumentRoot "D:/xampp/htdocs/test"
ServerName test.local
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:/xampp/htdocs"
ServerName localhost
</VirtualHost>
此时如果用户输入的是一个不存在的虚拟地址,会默认访问到test文件夹下面,如果上面2者的顺序调换下, 则访问到的是htdocs目录下。