阻止匿名用户访问 Mediawiki 上的历史记录?

Block access to history for anonymous users on Mediawiki?

我不希望未注册(未登录)的用户能够访问我的 Mediawiki 安装的修订历史记录。我发现了一些关于通过 CSS 隐藏选项卡的过去 SE 问题,但我实际上希望阻止对整个 "history" 页面的访问,即使是通过直接 URL 访问。

有许多强大的插件可以通过各种复杂的方式限制用户访问,但我希望在开始设置大规模扩展之前有一个简单的 "off-switch" 可以实现此功能。

最简单的方法是将这行代码添加到 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.32 版本中添加代码,但它引发了服务器错误 500。看起来他们已经完全弃用了 wgHooks。我能够通过使用 Lockdown 扩展来完成同样的事情,请参见此处:

https://www.mediawiki.org/wiki/Extension:Lockdown

我在LocalSettings.php

中使用了这个选项
$wgActionLockdown['history'] = [ 'user' ];