我第一次使用Laravel,而我的新客户端刚刚切换到HTTPS。
由于在HTTP(而不是HTTPS)中打开文件和图像,我在他网站的控制台中发现很多混合内容错误。
我检查了他的config / app.php,他已经有了:
'url' => 'https://www.Domain.co',
但是当我检查代码时,出现混合内容错误,就会出现URL::to('')
,该域呈现没有https的域。
有什么主意我可以解决吗?
答案 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();
}