介绍
最近在配置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) "xxx.cn"
于是方案来了。
代码
在config.php中编辑wwwroot即可
整合成代码就是这样了
$CFG->wwwroot=$_SERVER['REQUEST_SCHEME']."://".$_SERVER['HTTP_HOST'];
如果有二级目录,则加上即可
$CFG->wwwroot=$_SERVER['REQUEST_SCHEME']."://".$_SERVER['HTTP_HOST']."/moodle";
到此就实现了,http和https的兼容访问,样式混乱问题得到解决。
希望能有所帮助,喜欢可以关注我的文章哦。
缺点
学虹夜雨:怎么就那么喜欢PHP变量,不知道用了这变量,魔灯的CRON就容易出问题。
网友评论