VirtualHost配置必须三者对齐:域名、路径、端口;需启用httpd-vhosts.conf、正确设置DocumentRoot与ServerName、修改hosts映射127.0.0.1,缺一将导致403/404或请求错配。

VirtualHost 配置必须三者对齐:域名、路径、端口,缺一不可。否则浏览器打不开、403/404频发,或者所有请求都落到第一个站点。
确认 httpd-vhosts.conf 已被 Apache 加载
这是最常被跳过的一步,也是多域名失效的头号原因。
- 打开
XAMPPpacheconfhttpd.conf - 搜索
Include conf/extra/httpd-vhosts.conf - 确保该行**前面没有
#**;如果有,删掉 - 保存后必须重启 Apache(XAMPP 控制面板 Stop → Start,别只点 Restart)
不执行这步,httpd-vhosts.conf 里写多少个 VirtualHost 都不会生效。
httpd-vhosts.conf 中的 VirtualHost 顺序决定默认路由
Apache 按照配置文件中出现的顺序匹配 ServerName;没匹配上的请求,会落到**第一个 VirtualHost 块**。所以直接把新站点追加到文件末尾,很可能导致 localhost 打开的是你的项目而不是 XAMPP 首页。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 在
httpd-vhosts.conf最开头显式加一个兜底配置:<VirtualHost *:80><br> DocumentRoot "C:/xampp/htdocs"<br> ServerName localhost<br></VirtualHost>
- 再在后面添加你的自定义站点,例如:
<VirtualHost *:80><br> DocumentRoot "D:/projects/blog"<br> ServerName blog.local<br></VirtualHost>
-
DocumentRoot必须是绝对路径,结尾**不能有斜杠**(D:/projects/blog✅,D:/projects/blog/❌) - Windows 路径中用正斜杠
/或双反斜杠\,单反斜杠会导致 Apache 启动失败
系统 hosts 文件必须映射到 127.0.0.1
浏览器根本不会查 DNS,它只认 hosts 文件里的记录。跳过这步,输 blog.local 就是“无法访问此网站”。
- 用管理员权限打开:
C:WindowsSystem32driversetchosts - 每行一个映射,格式严格为:
127.0.0.1 blog.local - 不要写
localhost或127.0.0.1以外的 IP - 改完保存即可,无需重启系统;但建议用无痕窗口或清 DNS 缓存:
ipconfig /flushdns
验证配置语法再重启 Apache
写错一个引号、漏一个尖括号,Apache 就起不来,XAMPP 控制面板的 Start 按钮会瞬间变灰,毫无提示。
- 打开命令行(CMD 或 PowerShell),cd 到
XAMPPpachein - 运行:
httpd -t - 如果输出
Syntax OK,说明配置合法;否则按错误行号去修 - 别依赖 XAMPP 的 “Restart” 按钮——它有时跳过重载,务必先 Stop 再 Start
最容易被忽略的是:修改 hosts 后没清 DNS 缓存,或 httpd-vhosts.conf 里漏了 <directory></directory> 权限块,导致 403 Forbidden;这两处问题不会报错,但站点就是打不开。

















