大佬教程收集整理的这篇文章主要介绍了php-Laravel配置强制https,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们的网站托管在负载平衡服务器上. SSL卸载在防火墙上完成,因此客户端被反向代理到Web服务器场.
当https请求到达我们的Laravel应用程序时,服务器变量httpS为空,Laravel似乎没有检测到https模式,并生成如下网址(资产和路由):
> http://www.somesite.be:443/assets/
> http://www.somesite.be:443/nl-BE/about
有没有一种方法可以配置Laravel来强制网址生成https链接?
我们更喜欢配置解决方案,因为我们有一个不在https下运行的开发和登台环境.
注意:
我们已经尝试过fideloper的“ trustedproxy”方法,但结果没有变化.
我假设不可以选择.htaccess重写,因为htaccess重写基于相同的https标头(我们不接收)或端口(80,laravel调用端口443).
谢谢您的帮助.
解决方法:
Laravel的UrlGenerator类具有一个名为forcescheR_793_11845@a的方法,该方法使您可以强制使用模式,而忽略从请求的URL中提取的模式.只需创建一个服务提供商SecureRoutIngserviceProvider即可,该服务提供商使用Laravel的IOC覆盖默认生成器并返回一个强制执行安全模式的实例:
use Illuminate\RoutIng\UrlGenerator;
use Illuminate\RoutIng\RoutIngserviceProvider;
class SecureRoutIngserviceProvider extends RoutIngserviceProvider
{
public function boot()
{
App::bind('url', function () {
$generator = new UrlGenerator(
App::make('router')->getRoutes(),
App::make('request');
});
$generator->forcescheR_793_11845@a('https');
return $generator;
}
parent::boot();
}
}
接下来,我们需要通过将服务提供者添加到app / config / app.PHP中的providers数组中来注册该服务提供者:
'providers' => array(
...,
'SecureRoutIngserviceProvider',
)
这就是全部.我已经测试了此代码,并且工作正常(在Laravel 4.2中).
以上是大佬教程为你收集整理的php-Laravel配置强制https全部内容,希望文章能够帮你解决php-Laravel配置强制https所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。