【问题标题】:Why laravel redirects to https even in local environment?为什么 laravel 即使在本地环境中也会重定向到 https?
【发布时间】:2018-03-27 08:51:02
【问题描述】:

我正在开发 Laravel 5.5 版。我有一个需要执行域的应用程序。这就是为什么我在 /etc/hosts 文件中添加了以下条目,以便我可以使用 dashboard.application.devapi.application.dev 等域打开我的应用程序。这是我的/etc/hosts 文件的样子。

127.0.0.1   localhost
127.0.1.1   p01ymath
127.0.0.1   dashboard.application.dev
127.0.0.1   api.application.dev

我正在使用php artisan serve --port=80 为我的应用程序提供服务,这样我就可以使用普通的开发域名来执行我的应用程序。是的,已关闭 apache、nginx 或任何其他在端口 80 上运行的服务器。

问题是,当我尝试打开 dashboard.application.devapi.application.dev 时,它被重定向到应用程序的 https 版本.我已经使用php artisan cache:clearcomposer dump-autoloadphp artisan route:clearphp artisan optimize 清除了缓存,但没有任何效果。

这是我的 AppServiceProvider 的样子。它说如果应用程序不在 local 环境中,则重定向到 https 版本。

public function boot()
{
    if (!App::environment('local')) {
        URL::forceScheme('https');
    }
}

但我的应用程序是在 本地 环境中。我在.env 文件中的APP_ENV 指令设置为local,这意味着应用程序不能将我重定向到https 版本。我什至尝试清理浏览器上的缓存,并尝试在另一个我从未使用过的浏览器中打开应用程序。不过,这个问题仍未解决。

是不是我做错了什么?

【问题讨论】:

  • .htaccess 中是否有任何可能导致该行为的内容?如果在那个启动功能上,你做dd(App::environment('local')) 它输出什么?
  • 什么浏览器?我读过 Chrome 会自动为所有 .dev 域执行此操作。

标签: php laravel laravel-5


【解决方案1】:

Chrome 63(自 2017 年 12 月起推出)将强制所有以 .dev(和 .foo)结尾的域通过预加载的 HTTP 严格传输安全 (HSTS) 标头重定向到 HTTPS。 You can find more information about this here.

将域更改为 .local 或 .test

【讨论】:

  • 是的。我将我的域更改为.test,它们运行良好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-29
  • 2018-07-04
  • 2017-09-06
  • 2010-12-17
  • 1970-01-01
相关资源
最近更新 更多