必须三步全对:改httpd.conf启用虚拟主机、改httpd-vhosts.conf定义域名与路径并配置Directory权限、改hosts文件做本地解析;漏任一步均导致404或跳回localhost。
能配,但必须三步全对:改启用虚拟主机、改定义域名与路径、改系统文件做本地解析。漏任何一步,浏览器都会 404 或直接跳回。
必须先启用
加载
很多人改完
没反应,根本原因是 Apache 根本没读它。打开
,搜索:
确保这行前面没有
;如果有,删掉。保存后重启 Apache —— 这不是可选项,是启动虚拟主机的开关。
常见错误现象:
所有域名(包括
)都指向第一个
的
改了
但访问
仍显示 XAMPP 默认页
中的
必须带完整权限控制
只写
和
是不够的。Apache 2.4+ 默认拒绝所有目录访问,必须显式放行。正确结构示例:
关键点:
必须是绝对路径,结尾不加斜杠
路径必须和
完全一致(大小写、斜杠方向都要对)
别用
—— 这是 Apache 2.2 语法,XAMPP 通常带的是 2.4,会报
如果项目含 PHP,
才能让
生效
Windows
文件必须用管理员权限保存
路径是
,但直接双击编辑常因权限不足导致保存失败,看似改了实则没写入。正确做法:
用记事本或 VS Code「以管理员身份运行」,再通过文件 → 打开选中该
文件
在末尾添加两行(注意空格,不是 Tab):
验证是否生效:
命令行执行
,应返回
若提示“找不到主机”,说明
没生效,大概率是没用管理员权限保存
改完 hosts 不需要重启 Apache,但浏览器可能缓存 DNS,建议清空 DNS 缓存:
二级域名配置最容易被忽略的兼容性细节
Chrome 和 Edge 从 2022 年起默认禁止使用
、
等公共后缀作本地域名,会强制跳 HTTPS 并报错。所以:
别用
,改用
、
或
是 IETF 标准保留域名,无需证书且所有浏览器都支持纯 HTTP
如果用了
却打不开,看地址栏是否自动变成
—— 这就是 HSTS 强制升级导致的
多个二级域名共存时,
可追加别名,比如:
,但主域名仍以
为准
真正卡住人的往往不是语法,而是
没写对、
没解注、或者权限没给够 —— 这三处检查完,95% 的二级域名问题就解决了。
httpd.confhttpd-vhosts.confhostslocalhosthttpd-vhosts.confhttpd-vhosts.confXAMPP\apache\conf\httpd.confInclude conf/extra/httpd-vhosts.conf#localhostVirtualHostDocumentRoothttpd-vhosts.conftest.localhttpd-vhosts.confVirtualHostDocumentRootServerName
DocumentRoot "D:/xampp/htdocs/myapp"
ServerName api.dev.local
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
DocumentRootDocumentRootAllow from allInvalid command 'Allow'AllowOverride All.htaccesshostsC:\Windows\System32\drivers\etc\hostshosts127.0.0.1 frontend.dev.local
127.0.0.1 api.dev.localping frontend.dev.localReply from 127.0.0.1hostsipconfig /flushdns.dev.appmyapp.devmyapp.testmyapp.localmyapp.localhost.localhost.devhttps://myapp.devServerAliasServerAlias www.api.dev.local api.dev.localServerNamehostshttpd.conf