Moodle内所有的链接都是绝对地址,通过config.php文件中的$CFG->wwwroot定义根位置。这使网站无法支持多域名、多IP。
比如,http://cms.hit.edu.cn的IP是202.118.253.67。为方便被割裂到校园网外的学生访问,现在想给它加一个网通IP,61.167.60.4,绑定在域名http://cms-hit.sunner.cn上。一切都配置好之后,访问http://cms-hit.sunner.cn,再继续点击链接,就都被指向http://cms.hit.edu.cn了。网通IP形同虚设。
解决办法:在config.php文件中加上这样一段代码:
if ($_SERVER['HTTP_HOST'] == 'cms-hit.sunner.cn') $CFG->wwwroot = 'http://cms-hit.sunner.cn'; else $CFG->wwwroot = 'http://cms.hit.edu.cn'; |
也可以干脆直接:
$CFG->wwwroot = 'http://' . $_SERVER['HTTP_HOST']; |
为什么直接在Windows的hosts文件中加入
61.167.60.4 cms.hit.edu.cn
一行会造成访问cms时出现403 Forbidden错误?
难道没有办法在浏览器端解决老师提出的问题吗?
这里的所描述的问题不能在客户端解决,因为moodle中所有的链接都是绝对地址。你直接看页面代码可以看到