强制路由到 HTTPS

Force Route to HTTPS

我需要有关在实时服务器上设置 laravel 背包的帮助。

所以一开始我在加载资产时遇到了问题,因为它使用 http 作为图像并且 css

http://example.com/images/ and http://example.com/css/

我可以使用我得到的代码解决这个问题

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> 

资产加载正确(它显示 https://example.com/images/... 当我检查它时)

但是不知为何有些关键内容没有用https加载,截图如下:

有错误

Access to XMLHttpRequest at 'http://example.com/admin/elfinder/connector' from origin 'https://example.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.

错误代码如下

  <!-- This file is used to store sidebar items, starting with Backpack\Base 0.9.0 -->
  <li>
    <a href="{{ backpack_url('dashboard') }}">
      <i class="fa fa-dashboard"></i>
      <span>{{ trans('backpack::base.dashboard') }}</span>
    </a>
  </li>

还有一些东西没有更新到 https,例如一些 CSS(来自 vendor/crud)、脚本、post 方法和徽标

我想我可以将元标记复制粘贴到 backpack_url,但我不知道它在哪里或如何工作。

我对此很陌生,欢迎任何建议

谢谢!

看起来您的 Laravel 安装认为您在 HTTP 服务器上 运行,而客户端的请求是通过 HTTPS 发出的 这些问题通常是由于 Laravel.

前面有代理而发生的

作为第一个电话点,请确保您的 trusted proxy configuration 是正确的。这将导致 Laravel 信任 X-Forwarded-Protocol header,并使实习生生成正确的 https URL。

如果您无法使代理配置正常工作,您始终可以通过在 AppServiceProvider

中添加此内容来强制生成 https URL
if($this->app->environment('production')) {
    \URL::forceScheme('https');
}