最简单的解决方案是使用可以从互联网和内部机器访问的域名。
如果做不到这一点,Moodle 配置文件只是一个 PHP 文件,因此您可以执行以下操作:
if (access_via_internet()) {
$CFG->wwwroot = WEBROOT_FOR_INTERNET_ACCESS;
} else if (access_via_intranet()) {
$CFG->wwwroot = WEBROOT_FOR_INTRANET_ACCESS;
} else {
throw new Exception("Ye cannae change the laws of physics");
}
function access_via_internet() {
// Do something to detect access via the internet.
// Probably parse $_SERVER['HTTP_HOST']
return (did_we_detect_the_internet() ? true : false);
}
function access_via_intranet() {
// Do something to detect access via the intranet.
// Probably just negate the value of access_via_internet()
return !access_via_internet();
}
另一种选择是仅依赖用户来找您的服务器地址:
$CFG->wwwroot = $_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].'/exam';
如果您确实允许从不同地址访问,一个潜在的问题是:不要将 Moodle URL 复制并粘贴到课程内容中。这很容易忘记,但 URLS 仅适用于从同一路由访问的用户。