Mac OS High Sierra下Apache Vhost问题:自定义域名自动转HTTPS失效
解决Mac OS High Sierra升级后Apache虚拟主机自动跳HTTPS的问题
我之前升级High Sierra后也碰到过一模一样的Apache虚拟主机问题——localhost路径正常访问,但自定义域名强制跳HTTPS还打不开,大概率是这几个地方出了问题,一步步排查就能解决:
清理浏览器的HSTS缓存
现代浏览器(Chrome、Safari等)会对曾经使用过HTTPS的域名启用HSTS(HTTP严格传输安全),强制后续请求跳转到HTTPS,哪怕你后来改回HTTP也没用。- Chrome:在地址栏输入
chrome://net-internals/#hsts,找到「Delete domain security policies」,输入planning.dev后点击删除。 - Safari:可以直接用隐私浏览模式测试,或者重置浏览器的所有缓存数据。
- Chrome:在地址栏输入
检查虚拟主机和.htaccess的重定向规则
打开你的Apache虚拟主机配置文件(通常在/etc/apache2/extra/httpd-vhosts.conf,或者你自定义的vhost配置文件),看看有没有添加强制HTTPS的重写规则,比如:RewriteEngine On RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]同时也要检查项目根目录下的
.htaccess文件,很多框架(比如Laravel、WordPress)会默认添加HTTPS重定向,不小心开启的话就会导致跳转。修正Apache全局或虚拟主机的SSL配置
High Sierra升级后,Apache可能默认启用了mod_ssl模块,或者全局配置里新增了HTTPS相关的规则。你可以:- 打开
/etc/apache2/httpd.conf,检查有没有LoadModule ssl_module libexec/apache2/mod_ssl.so这一行,如果不需要全局启用SSL,可以注释掉(但如果其他站点需要HTTPS就别改)。 - 在
planning.dev的虚拟主机配置里明确指定HTTP端口,并关闭重写引擎(如果不需要的话),示例配置:
<VirtualHost *:80> ServerName planning.dev DocumentRoot "/Users/macbook/Sites/planning/public" # 禁用重写,避免强制跳转 RewriteEngine Off # 其他原有配置,比如目录权限等 <Directory "/Users/macbook/Sites/planning/public"> AllowOverride All Require all granted </Directory> </VirtualHost>- 打开
确认/etc/hosts文件配置正确
打开终端输入cat /etc/hosts,检查planning.dev是否仍然指向127.0.0.1,确保没有被修改成其他地址:127.0.0.1 planning.dev
如果以上步骤都试过还是不行,建议查看Apache的错误日志(路径是/var/log/apache2/error_log),里面会记录具体的跳转触发原因,能帮你更快定位问题。
内容的提问来源于stack exchange,提问作者karmous
相关产品推荐
相关产品推荐

