XAMPP不支持多级子域名+多端口自动映射,须手动配置hosts、httpd.conf和httpd-vhosts.conf三处,Apache 2.4+必须用Require all granted否则403必现。

直接说结论:XAMPP 本身不支持“多级子域名 + 多端口”自动映射,必须手动组合 hosts + httpd.conf + httpd-vhosts.conf 三处配置,且 Apache 2.4+ 必须用 Require all granted 替代旧版权限指令,否则 403 错误必现。
为什么不能只靠改 httpd-vhosts.conf 就生效
Apache 不会自动把 www.dev.project.local 这种多级子域名解析到对应目录——它只认 ServerName 字符串是否完全匹配。你写 ServerName dev.project.local,浏览器输 www.dev.project.local 就 404;反过来也一样。所以每个多级子域名都得单独配一条 <virtualhost></virtualhost>,不能靠通配符偷懒(*.dev.project.local 在 Apache 2.4 默认不启用,需额外加 ServerAlias 或启用 mod_vhost_alias,但 XAMPP 默认没开)。
-
ServerName必须和浏览器地址栏输入的**完整主机名**一字不差(包括www.前缀) - 若想同时支持
dev.project.local和www.dev.project.local,得在同一个<virtualhost></virtualhost>块里加ServerAlias dev.project.local www.dev.project.local -
httpd-vhosts.conf文件本身默认是被注释掉的,必须确认httpd.conf里这行没被注释:Include conf/extra/httpd-vhosts.conf
hosts 文件怎么填才不翻车
Windows 的 hosts 是纯文本映射,不支持通配符或正则。每个你要访问的多级子域名,都得单独写一行指向 127.0.0.1:
XAMPP 8.0.30 是一款免费、开源的跨平台 Web 服务器集成包,专为快速搭建本地 PHP 开发环境而设计。该版本核心组件包括:Apache 2.4.56、MySQL 8.0.33、PHP 8.0.30、phpMyAdmin 5.2.1 等。它支持 Windows、Linux 和 macOS 系统,可让开发者在个人电脑上轻松模拟服务器环境,无需复杂配置即可运行 WordPress、Thin
- 错误写法:
127.0.0.1 *.dev.project.local(会被当字面量,无效) - 正确写法(三行):
127.0.0.1 dev.project.local、127.0.0.1 www.dev.project.local、127.0.0.1 api.dev.project.local - 修改后必须以管理员身份运行记事本保存,否则 Windows 会静默失败(尤其 Win10/Win11)
- 改完别忘了清 DNS 缓存:
ipconfig /flushdns,否则旧缓存可能让你白等几分钟
端口 + 子域名混搭的实际配置示例
假设你要让 admin.dev.project.local:8080 指向 D:\xampp\htdocs\project-admin,而 api.dev.project.local:8081 指向 D:\xampp\htdocs\project-api,操作顺序不能错:
- 第一步:在
httpd.conf里添加监听端口(位置在已有Listen 80下方):Listen 8080、Listen 8081 - 第二步:在
httpd-vhosts.conf里分别写两个块(注意路径斜杠用正斜杠或双反斜杠):<VirtualHost *:8080> ServerName admin.dev.project.local DocumentRoot "D:/xampp/htdocs/project-admin" <Directory "D:/xampp/htdocs/project-admin"> Require all granted AllowOverride All </Directory> </VirtualHost><VirtualHost *:8081> ServerName api.dev.project.local DocumentRoot "D:/xampp/htdocs/project-api" <Directory "D:/xampp/htdocs/project-api"> Require all granted AllowOverride All </Directory> </VirtualHost> - 第三步:确保
hosts已含这两行:127.0.0.1 admin.dev.project.local和127.0.0.1 api.dev.project.local
最容易被忽略的是权限模型切换——XAMPP 从 5.6 开始默认用 Apache 2.4,Order Deny,Allow 和 Allow from all 全部失效,不换成 Require all granted 就算路径全对,也只会返回 403 Forbidden。另外,端口号尽量避开 1024 以下(比如别用 80、443、21),否则可能被系统服务占用或需要管理员权限启动。

















