我不希望未注册(未登录)的用户能够在我的Mediawiki安装上访问修订历史记录。我已经找到了一些关于通过CSS隐藏选项卡的SE问题,但我希望实际上阻止访问整个“历史”页面,甚至通过直接URL访问。
有很多功能强大的插件可以用各种复杂的方式限制用户访问,但我希望在开始设置大规模扩展之前,这个功能有一个简单的“关闭”功能。
答案 0 :(得分:3)
最简单的方法是将这行代码添加到LocalSettings.php文件的底部:
$wgHooks['MediaWikiPerformAction'][] = function( $output, $article, $title, $user, $request, $wiki ) {
if( ( !$user || $user->isAnon() ) && ( $request->getVal('action') == 'history' ) ) {
return false;
}
return true;
}
请注意,此解决方案需要PHP 5.5 +和mediawiki 1.25 +
答案 1 :(得分:0)
我试图将代码添加到最新的1.32构建中,并引发服务器错误500。看来他们已经一起废除了wgHooks。通过使用Lockdown扩展,我可以完成相同的操作,请参见此处:
https://www.mediawiki.org/wiki/Extension:Lockdown
我在LocalSettings.php中使用了此选项
$wgActionLockdown['history'] = [ 'user' ];