强制URL :: to('')在HTTPS中而不是HTTP中打开

时间:2019-07-24 06:04:52

标签: laravel https

我第一次使用Laravel,而我的新客户端刚刚切换到HTTPS。

由于在HTTP(而不是HTTPS)中打开文件和图像,我在他网站的控制台中发现很多混合内容错误。

我检查了他的config / app.php,他已经有了:

'url' => 'https://www.Domain.co',

但是当我检查代码时,出现混合内容错误,就会出现URL::to(''),该域呈现没有https的域。

有什么主意我可以解决吗?

2 个答案:

答案 0 :(得分:0)

这些问题通常是由于在Laravel前面有代理而导致的。

首先,请确保您的trusted proxy configuration是正确的。这将导致Laravel信任X-Forwarded-Protocol标头,并进行内生以生成正确的https URL。

如果无法使代理配置正常工作,则可以始终通过在https中添加URL来强制生成AppServiceProvider

if($this->app->environment('production')) {
    \URL::forceScheme('https');
}

答案 1 :(得分:-1)

请在RouteServiceProvider中更新map()

public function map(Router $router, Request $request)
    {

        $httpHost = (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : "");
        $requestUri = (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : "");
        $actual_link = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$httpHost/$requestUri";

        redirect($actual_link)->send();

    }