Laravel本地环境为何自动重定向至HTTPS?
为什么Laravel 5.5本地环境会自动重定向到HTTPS?
这问题我在本地开发Laravel项目时也碰到过,结合你的场景,主要有这几个核心原因:
1. .dev 域名的强制HTTPS特性
这是最可能触发你问题的原因!Google已经正式注册了.dev顶级域名,并且所有.dev域名会被浏览器通过HSTS机制强制跳转到HTTPS。不管你本地有没有配置SSL证书,浏览器都会自动把HTTP请求重定向到HTTPS版本,但你用php artisan serve --port=80启动的是纯HTTP服务,自然会出现跳转异常。
2. Laravel内部的HTTPS强制配置
如果域名问题排除了,那得检查Laravel自身的配置:
- 查看
.env文件里的APP_URL是否设置成了https://dashboard.application.dev,Laravel会根据这个值生成URL,部分场景下会触发协议重定向 - 检查
app/Providers/AppServiceProvider.php的boot方法里有没有类似URL::forceScheme('https')的代码,这行代码会强制所有请求使用HTTPS - 确认是否自定义了HTTPS重定向中间件,或者
TrustProxies中间件的配置错误识别了请求协议
解决方案
针对你的情况,最直接有效的方案是:
- 更换本地测试域名后缀:改用IETF推荐的本地测试域名,比如
.test、.local或者.localhost,这些后缀不会被强制HTTPS。修改/etc/hosts里的条目,比如改成127.0.0.1 dashboard.application.test - 如果非要继续用
.dev域名:- 生成本地自签名SSL证书
- 使用支持HTTPS的本地服务器,比如Laravel Valet(自带SSL支持),或者配置Nginx/Apache来处理HTTPS请求——
php artisan serve默认不支持HTTPS,没法直接适配
- 检查Laravel配置:确保
.env里的APP_URL是http://dashboard.application.dev,并且移除任何强制HTTPS的代码
内容的提问来源于stack exchange,提问作者Adarsh Sojitra
相关产品推荐
相关产品推荐

