You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.6运行php artisan serve强制跳转HTTPS 本地如何关闭?

触发原因
  • 项目未区分环境配置了全局HTTPS强制跳转逻辑,最常见的是在AppServiceProvider的boot方法中直接调用了\URL::forceScheme('https'),本地开发环境下该规则依然生效
  • 全局中间件中注册了HTTPS跳转中间件,未添加本地环境豁免逻辑
  • .env配置错误,APP_ENV设为生产环境,或APP_URL前缀为https,或自定义开启了强制HTTPS的环境变量
  • 浏览器缓存了过往的HTTPS 301永久重定向规则,即使后端配置修改后依然自动跳转
本地环境解决方案

1. 调整服务提供者的协议强制逻辑

打开app/Providers/AppServiceProvider.php,修改boot方法内的相关代码,仅生产环境启用HTTPS强制:

public function boot()
{
    // 仅生产环境强制HTTPS
    if ($this->app->environment('production')) {
        \URL::forceScheme('https');
    }
}

2. 校验全局中间件配置

查看app/Http/Kernel.php的$middleware数组,如果存在自定义的HTTPS跳转中间件,在中间件逻辑中添加本地环境跳过规则:

public function handle($request, Closure $next)
{
    // 本地环境直接跳过HTTPS校验
    if (!$request->secure() && app()->environment('production')) {
        return redirect()->secure($request->getRequestUri());
    }
    return $next($request);
}

3. 修正环境配置并清除缓存

修改项目根目录.env文件:

  • 调整APP_ENV=local确认是本地开发环境
  • 修改APP_URL=http://127.0.0.1:8000使用http协议
  • 如果存在FORCE_HTTPS配置项,设置为FORCE_HTTPS=false

修改完成后执行命令清除配置缓存:
php artisan config:clear
重启php artisan serve服务即可。

4. 排查浏览器缓存问题

如果配置修改后依然跳转,可使用浏览器无痕模式访问测试,或者清除当前站点的缓存数据,避免过往的301重定向缓存影响。

内容的提问来源于stack exchange,提问作者user1765388

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 20:06:03