问题:安装了xampp后访问127.0.0.1或者localhost都可以进入网站目录。为了更好测试网站效果,往往要设置一个域名,用Apache设置虚拟域名既可以满足需求。可是有时候直接设置httpd-vhosts.conf问件并不成功(导致127.0.0.1也转到某项目里面),以前好像直接设置就行了,可是有时候就是那么不顺利,网上很多教程都是直接修改而没有重新给localhost设置一个还原过程,这样就导致上面的问题了。经过尝试,发现如下几步设置即可:
1.修改hosts文件
用记事本打开C:\Windows\System32\drivers\etc下的hosts文件,添加以下内容(我以tpblog.com和lan.com作为我的虚拟域名)
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 tpblog.com
127.0.0.1 lan.com
然后保存(在win8以上系统要管理员身份打开才可以保存)即可。
2.添加虚拟域名到Apache配置文件
打开xampp安装位置,进入Apache目录找到配置文件(C:\xampp2\apache\conf\extra\httpd-xampp.conf)打开配置文件,添加以下信息(蓝色代表访问权限和设置,不添加的话可能访问不了)
<VirtualHost *:80>
DocumentRoot "C:/xampp2/htdocs/tpblog/"
ServerName tpblog.com
ServerAlias www.tpblog.com
<Directory "C:/xampp2/htdocs/tpblog/">
Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm index.php
AllowOverride all
Order Deny,Allow
Allow from all
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/xampp2/htdocs/lan/"
ServerName lan.com
ServerAlias www.lan.com
<Directory "C:/xampp2/htdocs/lan/">
Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm index.php
AllowOverride all
Order Deny,Allow
Allow from all
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/xampp2/htdocs/"
ServerName localhost
ServerName 127.0.0.1
</VirtualHost>
然后保存,重启Apache,这样可以正常访问lan.com和tpblog.com了。
注意问题:
1.上面红色部分是防止默认的域名IP(127.0.0.1和localhost)都定向到虚拟域名而设置的还原,要在最后写。
2.安装了xampp无法访问127.0.0.1等的,可能是防火墙没有运行Apache通过,添加httpd和其它相关的允许通过即可,也可以关闭防火墙测试。
3.设置虚拟域名后无反应的,可能是权限不够或者是httpd.conf里面没有引入虚拟域名配置文件httpd-vhosts.conf,修改httpd.conf里面添加引入或者去掉引入代码前面的“#”即可(设置如下)。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf