Php 在CloudFlare背后的Laravel上从HTTP移动到HTTPS

Php 在CloudFlare背后的Laravel上从HTTP移动到HTTPS,php,laravel,laravel-5.2,cloudflare,Php,Laravel,Laravel 5.2,Cloudflare,我在laravel 5.2上有一个申请。 它在HTTP上运行良好 我使用asset函数来生成完整的url,而不是使用相对的url <link rel="stylesheet" type="text/css" href="{{ asset('/css/bootstrap.min.css') }}"> 根据laravel文档,asset方法自动检测请求协议并相应地生成URL 现在应用程序没有在HTTPS上运行, 我可以对HTTPS URL使用secure\u asset,但之后它将

我在laravel 5.2上有一个申请。 它在HTTP上运行良好

我使用
asset
函数来生成完整的url,而不是使用相对的url

<link rel="stylesheet" type="text/css" href="{{ asset('/css/bootstrap.min.css') }}">

根据laravel文档,
asset
方法自动检测请求协议并相应地生成URL

现在应用程序没有在HTTPS上运行, 我可以对HTTPS URL使用
secure\u asset
,但之后它将停止在HTTP和
localhost
上运行

我知道我遗漏了一些东西,使用
laravel

PS-
Cloudflare
用于服务
HTTPS
请求。

访问请求 要通过依赖项注入获取当前HTTP请求的实例,您应该在控制器构造函数或方法上键入hint
illighted\HTTP\request


您可以使用Request::secure()检查请求是否通过HTTPS完成,而不是通过配置手动设置,如果您没有明确提示asset使用http/HTTPS,asset将根据请求信息生成协议。所以,你不应该在这里改变任何东西。一旦您开始通过安全连接请求它,它将切换到https。

到目前为止给出的所有答案都是正确的,但没有一个解决了我的问题

主要问题是我的应用程序落后于
CloudFlare

Laravel通过检查HTTP头(即
$\u SERVER['Request\u SCHEME']
)来检测请求是否安全,即使由于cloudflare的原因请求是HTTPS,该头仍然保持HTTP

CloudFlare为相同的服务器设置不同的头,即
$\u服务器['HTTP\u X\u FORWARDED\u PROTO']
,必须检查该头才能检测请求是否安全


在本文之后,我成功地生成了HTTPS URL,而没有对以前的应用程序代码进行任何更改。

我已经知道我可以这样做,也可以直接使用
$\u服务器['REQUEST\u SCHEME']
检测请求是否安全,但我不知道它将如何帮助资产功能生成正确的URL。据我所知,我没有明确更改它,但您能告诉我从哪里可以验证我相信启用mod_cloudflare(如果您使用apache)本可以解决您的问题,而无需编写任何代码。这本可以解决cloudflare的问题,但此解决方案适用于所有类型的负载平衡器。正如标题中所述,我认为问题集中在cloudflare上。您的url不再有效。。。SdCurChor介绍了一个最近的变化,它引起了我的问题,并在其余的中间有一个HTTP重定向,这些都是HTTPS。这篇文章/链接页面中的这个解决方案成功了。由于该站点已关闭,您可以在Wayback机器上找到它: