XAMPP配置二级域名到特定端口需同时完成三步:修改hosts文件将域名解析至127.0.0.1;在httpd.conf中取消Include注释并添加Listen端口;在httpd-vhosts.conf中配置对应VirtualHost块,缺一不可。

XAMPP 配置二级域名到特定端口,本质是两件事同时生效:DNS 层面让浏览器把域名解析到 127.0.0.1,Apache 层面让该端口监听并匹配对应 ServerName。漏掉任一环节,都会出现“无法访问”或“连接被拒绝”。
修改 Windows hosts 文件绑定域名到本地
这是最常被跳过的前置步骤。没有它,浏览器根本不会把你的二级域名发给本机 Apache。
- 用管理员权限打开
C:WindowsSystem32driversetchosts - 在文件末尾新增一行(注意:不能有中文空格、不能用 Tab 缩进):
127.0.0.1 api.dev.local - 可一次加多个:
127.0.0.1 api.dev.local<br>127.0.0.1 admin.dev.local<br>127.0.0.1 mobile.dev.local
- 改完保存;若提示无权限,先另存为桌面再复制覆盖原文件
启用并配置 httpd-vhosts.conf 中的虚拟主机
Apache 默认不加载虚拟主机配置,必须手动开启,否则所有 <VirtualHost> 块都无效。
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
- 打开
D: mpppacheconfhttpd.conf,搜索Include conf/extra/httpd-vhosts.conf - 确保该行前面**没有
#**;如果被注释了,删掉#并保存 - 打开
D: mpppacheconfextrahttpd-vhosts.conf,在末尾添加(以api.dev.local:8080为例):<VirtualHost *:8080><br> ServerName api.dev.local<br> DocumentRoot "D:/xampp/htdocs/api-project"<br> <Directory "D:/xampp/htdocs/api-project"><br> AllowOverride All<br> Require local<br> </Directory><br></VirtualHost>
-
ServerName必须和 hosts 里写的完全一致(大小写不敏感但建议全小写) -
DocumentRoot路径中避免中文、空格、特殊符号;推荐使用正斜杠/或双反斜杠\
在 httpd.conf 中显式声明监听端口
Apache 不会自动监听你写在 <VirtualHost *:8080> 里的端口——你得先告诉它“我要听这个端口”。
- 回到
D: mpppacheconfhttpd.conf - 搜索
Listen 80,在其下方新增一行:Listen 8080 - 支持多个端口,每行一个:
Listen 8080<br>Listen 8081<br>Listen 8082
- 不要写成
Listen *:8080(XAMPP 默认配置不支持这种写法,会导致启动失败) - 如果端口被占用(比如 Skype、IIS、其他服务),Apache 启动会报错,可用
netstat -ano | findstr :8080查进程
重启 Apache 并验证常见错误
改完三处配置后,Apache 必须完全重启才能加载新设置;只“重启”面板里的服务有时不生效。
- 在 XAMPP 控制面板中点击 Stop Apache → 等状态变灰 → 再点 Start
- 访问
http://api.dev.local:8080;若看到目录列表或首页,说明成功 - 若出现
ERR_CONNECTION_REFUSED:检查Listen是否添加、端口是否被占、Apache 是否真正启动 - 若出现
403 Forbidden:大概率是<Directory>块缺失或Require local写错(旧版用Allow from all,新版必须用Require语法) - 若页面空白但无报错:检查
DocumentRoot路径是否存在、是否有index.php或index.html
真正容易卡住的地方不是语法,而是三处配置(hosts / httpd.conf 的 Listen 和 Include / httpd-vhosts.conf 的 VirtualHost)必须全部对齐,且 Apache 进程要彻底重启。少一步,就只是在本地“假装配置成功”。

















