需同步配置hosts文件与apache虚拟主机。先以管理员权限编辑c:\windows\system32\drivers\etc\hosts,添加“127.0.0.1 域名”映射;再启用httpd-vhosts.conf并配置servername和documentroot,确保域名一致、路径正确、权限开放,最后重载apache配置。

改 hosts 文件本身不“配合”PHP虚拟目录,它只负责把域名转成 127.0.0.1;真正决定请求进哪个目录的是 Apache 的 httpd-vhosts.conf 配置。两者必须同时生效,缺一不可。
hosts 文件必须配对域名和 127.0.0.1
Windows 路径是 C:\Windows\System32\drivers\etc\hosts,需用管理员权限的记事本或 VS Code 打开。不能只写一行就完事:
- 每行一个映射,格式严格为
127.0.0.1 域名(中间空格或制表符均可,但不能有中文标点) - 避免用
.local(macOS/iOS 会拦截),推荐.test或.localhost - 别加
http://或端口,例如127.0.0.1 myapp.test:8080是无效的 - 改完不用重启 Apache,但浏览器 DNS 缓存要清:Chrome 访问
chrome://net-internals/#dns→ 点 Clear host cache
httpd-vhosts.conf 必须启用且语法正确
httpd-vhosts.conf 默认不加载,光写配置没用。先确认 httpd.conf 里这行已取消注释:
GitHub Hosts 更新工具(仅限中国用户),安全更新系统hosts文件,保留原有非GitHub条目,仅替换GitHub相关地址。支持备份恢复和风险提示。用于解决GitHub访问问题。
Include conf/extra/httpd-vhosts.conf
再检查 httpd-vhosts.conf 中每个 <virtualhost></virtualhost> 块是否满足以下条件:
-
ServerName必须和hosts里写的域名完全一致(大小写不敏感,但建议全小写) -
DocumentRoot必须是绝对路径,且统一用正斜杠:"C:/xampp/htdocs/myproject"(不是反斜杠、不加末尾斜杠) - 对应
<directory></directory>块里必须有Require all granted,否则 403 - 不要留空的
<virtualhost _default_:80></virtualhost>块,它会抢走所有未匹配的请求
Apache 必须重载配置,不是“刷新页面”
改完 hosts 和 httpd-vhosts.conf 后,常见错误是只点浏览器 F5 或只在控制面板点 Stop/Start —— 这些都不触发配置重读:
- 必须在 XAMPP 控制面板中点击 Apache → Config → Apache (httpd.conf),手动验证语法:
httpd -t返回Syntax OK才算通过 - 然后彻底关闭控制面板(右上角 ×),再双击
xampp-control.exe重新启动 - 最后点 Apache 的 Start,此时新配置才真正载入内存
- 如果仍 404,检查
DocumentRoot目录下是否有index.php或index.html
最容易被忽略的是:改了 hosts 却忘了启用 httpd-vhosts.conf 加载,或者 DocumentRoot 路径里混用了反斜杠和空格——这两处出错,浏览器哪怕能解析域名,Apache 也根本不会把请求路由到你想要的 PHP 目录。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










