[Laravel]修改Laravel 使之http,https自适应的方法

我之前一直使用的是http,所以部署lnmpa也无所谓,毕竟全都是http通信的。

最近换到https的时候出问题了。Nginx和Apache是http通信的,而我们和Nginx是https通信的,于是就悲剧了。

那些写明了绝对网址路径的都会生成http而不是https。(这可能是lnmpa的配置造成的,有时间我在研究研究。)

于是就有2种方法来兼容这个蛋疼的https和http。

1、修改服务器的反代配置

这个也蛋疼。给Apache加上SSL,然后端口还不能使用443,只能找其他的例如14430(大点以防系统应用冲突)

然后Nginx反代访问的时候,使用https协议。

实践证明这个工作量太大了。而且lnmp的默认脚本是http的。以后新建网站没有ssl的时候又要改回来,麻烦。

2、直接修改程序文件,兼容http和https

最简单的方法,是在他url生成之后,用str_replace 这个玩意把”http:”给去掉,显然我也是这么做的。然后,轻松的搞定了。

Laravel修改文件是helper.php 这个文件

function url($path = null, $parameters = [], $secure = null)
{
    if (is_null($path)) {
        return str_replace("http:","",app(UrlGenerator::class));
    }

    return str_replace("http:","",app(UrlGenerator::class)->to($path, $parameters, $secure));
}

函数已经被我改成酱紫了。而且没有修改核心,应该不会出啥问题。不过可能有一点,对老浏览器支持不太好~所以老浏览器就放弃挣扎吧。

未经允许不得转载:RffanLAB|Rffan实验室 » [Laravel]修改Laravel 使之http,https自适应的方法

赞 (6) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏