除$CFG->alternateloginurl外,Moodle默认登录页恢复排查方向咨询
全域搜索
$CFG->alternateloginurl配置:不要只局限于moodle.php(大概率是config.php的笔误),用命令行工具在整个Moodle部署目录搜索该配置项,比如执行grep -r "alternateloginurl" /path/to/your/moodle,排查是否有其他配置文件(如config.local.php、插件自带的配置)或自定义代码中设置了这个变量。检查认证插件的影响:替代登录页可能来自第三方/自定义认证插件。进入站点后台的「Site administration > Plugins > Authentication」,查看已启用的认证插件,重点检查非核心认证插件的设置是否强制替换了登录页,或者插件代码中是否存在拦截登录请求、重定向到自定义页面的逻辑。
深挖Moove主题及父主题设置:即使主题代码没改动,Moove主题的后台设置(「Site administration > Appearance > Themes > Moove」)可能隐藏了登录页替换开关;另外检查Moove是否继承了其他父主题,父主题的设置或函数(如
theme_xxx_loginpage())可能影响登录页渲染。排查本地自定义插件:Moodle的
local/目录下的自定义插件常用来修改核心流程。搜索local/下的所有代码,查看是否有使用登录相关钩子(如loginpage_hook)、重定向登录请求或替换登录模板的逻辑。检查服务器重定向规则:查看Apache的
.htaccess文件或Nginx配置,确认是否存在将默认登录页(login/index.php)重定向到替代页面的Rewrite规则。开启调试日志定位问题:在
config.php中临时开启调试模式:$CFG->debug = DEBUG_DEVELOPER; $CFG->debugdisplay = true;尝试登录后查看页面输出的调试信息和服务器日志,重点关注登录过程中的重定向来源、认证失败的具体错误提示,这能帮你区分是认证逻辑错误还是页面替换导致的误判。
查询数据库配置表:部分配置可能仅存于数据库而非配置文件。执行SQL查询:
SELECT name, value FROM mdl_config WHERE name LIKE '%login%';检查是否存在
alternateloginurl或其他与登录页相关的隐藏配置项。
内容的提问来源于stack exchange,提问作者Tamtomo Abdi Negoro

