PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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,请注明来意。
标签: