为何新配置的虚拟主机仅能在Edge运行,Chrome与Firefox无法访问?
问题原因与解决办法
嘿,这个问题我之前也碰到过!核心原因是.dev这个域名后缀的特殊性:Google早在2019年就把.dev收归为自己管理的顶级域名了,而且Chrome、Firefox这类主流现代浏览器会强制所有.dev域名使用HTTPS协议。但你现在配置的虚拟主机只支持HTTP(80端口),浏览器会自动尝试跳转到HTTPS,可你的本地Wamp服务器根本没配置HTTPS的证书和对应服务,自然就打不开了。至于Edge能访问,大概率是你的Edge版本或者安全设置还没触发这个强制HTTPS的规则,所以暂时能正常加载。
两种解决思路,你可以选一个适合自己的:
1. 更换测试域名后缀(最简单省心)
直接把.dev换成不会被浏览器强制HTTPS的本地测试后缀,比如.test、.local或者.localhost:
- 打开
httpd-vhosts.conf,把ServerName mycrud.dev改成ServerName mycrud.test - 打开Windows的Hosts文件(
C:\Windows\System32\drivers\etc\hosts),把127.0.0.1 mycrud.dev改成127.0.0.1 mycrud.test - 重启Wamp里的Apache服务,之后用
http://mycrud.test就能在所有浏览器正常访问了
2. 给虚拟主机配置HTTPS(进阶,适合非要用.dev的情况)
如果你坚持要用.dev域名,就得给Apache配置本地HTTPS证书:
- 先在Wamp菜单里启用Apache的
ssl_module模块(路径:Apache -> Apache Modules -> 勾选ssl_module) - 用
mkcert这类工具生成mycrud.dev的本地自签证书(mkcert是专门给本地开发生成可信证书的工具,操作很简单) - 在
httpd-vhosts.conf里添加HTTPS的虚拟主机配置:<VirtualHost *:443> ServerName mycrud.dev DocumentRoot "d:/symfony4/mycrud/public" SSLEngine on SSLCertificateFile "你的证书文件路径,比如d:/wamp/ssl/mycrud.dev.crt" SSLCertificateKeyFile "你的密钥文件路径,比如d:/wamp/ssl/mycrud.dev.key" <Directory "d:/symfony4/mycrud/public/"> Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All Require local </Directory> </VirtualHost> - 重启Apache服务,之后用
https://mycrud.dev访问就行(第一次打开浏览器会提示证书不安全,手动添加信任就可以了)
内容的提问来源于stack exchange,提问作者zac
相关产品推荐
相关产品推荐

