xampp 8.2.12 配虚拟目录必须同步修改三处:系统 hosts 文件绑定域名(如127.0.0.1 myapp.test)、httpd.conf 中取消 #include conf/extra/httpd-vhosts.conf 注释以启用虚拟主机、httpd-vhosts.conf 中配置完整 virtualhost 块(含 documentroot、servername 及 require all granted 权限),缺一导致 404 或 403。

改端口不等于配虚拟目录,XAMPP 8.2.12 配虚拟目录必须同时动三处:系统 hosts、Apache 主配置 httpd.conf、虚拟主机配置 httpd-vhosts.conf,漏掉任意一个都会导致 localhost 能访问但自定义域名 404 或拒绝连接。
启用 httpd-vhosts.conf 并取消注释
默认 Apache 不加载虚拟主机配置,得手动放开开关:
- 打开
XAMPP\apache\conf\httpd.conf - 搜索
Include conf/extra/httpd-vhosts.conf - 删掉该行开头的
#(确保不是##Include或其他注释嵌套) - 保存后不用重启服务,但后续修改
httpd-vhosts.conf后必须重启 Apache 才生效
在 httpd-vhosts.conf 中添加完整 VirtualHost 块
只写 DocumentRoot 和 ServerName 不够,缺权限配置会报 403 Forbidden:
- 打开
XAMPP\apache\conf\extra\httpd-vhosts.conf - 在文件末尾追加(路径和域名按实际替换):
<virtualhost>
DocumentRoot "D:/webroot/myapp"
ServerName myapp.test
<directory>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</directory></virtualhost>
-
*:8081必须和你当前 Apache 的Listen端口一致(比如改过 80 → 8081,这里就不能写*:80) -
Require all granted是 Apache 2.4+ 的新语法,写Allow from all会直接启动失败 - 路径中不要用反斜杠
\,统一用正斜杠/,Windows 下也认
同步修改系统 hosts 文件绑定域名
浏览器不认识 myapp.test,除非你告诉它这是本地地址:
- 用管理员权限打开记事本(否则无法保存到
C:\Windows\System32\drivers\etc\hosts) - 在文件末尾新增一行:
127.0.0.1 myapp.test - 不能写
localhost myapp.test,也不能多写空格或中文标点 - 改完不需重启系统,但建议清 DNS 缓存:
ipconfig /flushdns(PowerShell 或 CMD 运行)
验证与常见失败点
做完以上三步仍打不开?先确认这几个硬性条件:
- Apache 必须监听你写的端口(比如
8081),检查httpd.conf中Listen 8081和ServerName localhost:8081是否匹配 - 如果用了非标准端口(如
8081),浏览器访问必须带端口号:http://myapp.test:8081,不能省略 -
DocumentRoot路径里的文件夹必须真实存在,且至少含一个index.html或index.php - 如果项目依赖
.htaccess(如 Laravel、WordPress),确保AllowOverride All已启用,否则路由重写失效
最易被忽略的是:改了 httpd-vhosts.conf 后只点了 Apache 的 Restart 按钮,但 XAMPP 控制面板底层可能没完全 reload 配置;稳妥做法是先 Stop 再 Start,或者干脆关掉控制面板重开一次。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











