Windows 10下Apache虚拟主机配置问题:自定义域名无法访问
调试Windows 10下Apache虚拟主机配置问题
从你提供的信息来看,核心问题出在hosts文件配置未生效,后续的HTTPS错误是衍生问题,我们一步步来解决:
一、先解决hosts不生效的根本问题
从nslookup project.dev的结果可以明确,系统完全没读取到你hosts里的映射,这是访问失败的源头:
确保hosts文件正确编辑并保存
- Windows的hosts文件路径是
C:\Windows\System32\drivers\etc\hosts,必须用管理员权限打开编辑器(比如右键记事本→「以管理员身份运行」)才能修改保存,很多人忽略权限导致修改没真正写入。 - 确认hosts里的映射格式正确:
127.0.0.1 project.test # 后面改成.test后缀,原因看下面 ::1 project.test # 可选,同时映射IPv6本地地址
- Windows的hosts文件路径是
强制刷新DNS缓存
修改hosts后,系统可能还在使用旧缓存,打开管理员CMD执行:ipconfig /flushdns检查DNS客户端服务状态
按Win+R输入services.msc,找到「DNS Client」服务,确保它处于正在运行状态——这个服务负责读取hosts文件并处理本地DNS解析,停掉的话hosts会失效。
二、解决Chrome的HTTPS强制跳转问题
你后来遇到的NET::ERR_CERT_AUTHORITY_INVALID错误,是因为.dev是Google注册的顶级域名,Chrome默认会强制将所有.dev域名跳转到HTTPS,而你本地Apache没配置SSL证书,所以报错。
最简单的解决方法是换一个非强制HTTPS的本地域名后缀,比如.test、.local或者自定义的.project,避免浏览器自动跳转。
三、验证Apache虚拟主机配置
确保你的Apache配置没有遗漏:
开启虚拟主机模块
打开httpd.conf,找到下面一行,去掉前面的注释符号#:Include conf/extra/httpd-vhosts.conf简化并修正虚拟主机配置
用httpd-vhosts.conf的简化配置,注意路径用正斜杠/或者双反斜杠\\,加上权限控制:<VirtualHost *:80> DocumentRoot "C:/Users/0x1111/workspace" ServerName project.test <Directory "C:/Users/0x1111/workspace"> Require all granted AllowOverride All </Directory> </VirtualHost>
四、最终验证步骤
- 保存所有配置文件,重启Apache服务
- 再次执行
nslookup project.test,正常结果应该是:Server: localhost Address: 127.0.0.1 Name: project.test Address: 127.0.0.1 - 打开浏览器,手动输入
http://project.test访问(不要省略http://,避免Chrome自动转HTTPS)
内容的提问来源于stack exchange,提问作者Chần Thị Như




