xamp配置多个虚拟域名|注意还原localhost

问题:安装了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

评论/留言