让moodle同时支持https和http访问,解决https访问样式混乱

介绍

最近在配置moodle平台时,发现将https打开后,moodle无法引用很多css样式文件,导致样式混乱,按理说config.php中的目录,没有问题,http引用css也可以吧。

经过搜集资料发现,https不支持加在http的样式文件。于是,找出问题所在了,将www目录修改即可。

原理

其实,解决问题的关键就在于$_SERVER这个变量,里面包含的很多访问与配置信息。

https或者http也包含在这个变量里,连www网址也包含在里面。

我们可以分别用http和https访问网址,var_dump($_SERVER);

搜索http可以看到下面的内容。

["REQUEST_SCHEME"]=> string(5) "https"

["HTTPS"]=> string(2) "on"

["HTTP_HOST"]=> string(11) "ok121.cn"

于是方案来了。

代码

在config.php中编辑wwwroot即可

整合成代码就是这样了

$CFG->wwwroot=$_SERVER['REQUEST_SCHEME']."://".$_SERVER['HTTP_HOST'];

如果有二级目录,则加上即可

$CFG->wwwroot=$_SERVER['REQUEST_SCHEME']."://".$_SERVER['HTTP_HOST']."/moodle";

到此就实现了,http和https的兼容访问,样式混乱问题得到解决。

希望能有所帮助,喜欢可以关注我的文章哦。

你可能感兴趣的:(让moodle同时支持https和http访问,解决https访问样式混乱)