在XAMPP中创建虚拟主机后localhost无法正常访问的问题
解决Apache虚拟主机冲突问题
问题原因
Apache配置虚拟主机后,会按httpd-vhosts.conf里的顺序匹配第一个符合条件的<VirtualHost>块。你之前没给localhost单独配置虚拟主机,它就被第一个定义的phpiggy虚拟主机接管了,导致localhost跳转到phpiggy的目录。至于phpiggy.local报错,大概率是配置顺序乱了或者浏览器/系统缓存没清干净。
修复步骤
1. 修正httpd-vhosts.conf配置
必须同时给localhost和phpiggy.local配置虚拟主机,把localhost的配置放在前面,同时加上目录权限避免403错误:
# 配置localhost指向默认htdocs <VirtualHost *:80> DocumentRoot "C:/xampp/htdocs" ServerName localhost <Directory "C:/xampp/htdocs"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory> </VirtualHost> # 配置phpiggy.local指向项目目录 <VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/CMPD/phpiggy/public" ServerName phpiggy.local <Directory "C:/xampp/htdocs/CMPD/phpiggy/public"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory> </VirtualHost>
2. 确认hosts文件配置
打开C:\Windows\System32\drivers\etc\hosts(需管理员权限编辑),确保同时保留这两行:
127.0.0.1 localhost 127.0.0.1 phpiggy.local
3. 清理缓存并重启服务
- 重启XAMPP里的Apache服务,让新配置生效。
- 清浏览器缓存(按Ctrl+Shift+Del),或者用隐私窗口访问,避免旧缓存干扰。
- 命令行执行
ipconfig /flushdns刷新系统DNS缓存(Windows系统)。
验证
- 访问
localhost:应该正常显示htdocs下的默认文件。 - 访问
phpiggy.local:应该正确加载phpiggy项目的public目录内容。
内容的提问来源于stack exchange,提问作者Garfield
相关产品推荐
相关产品推荐

