Mediawikiでは通常のコンテンツだけでなく特別ページも一部を除いて,誰でも閲覧可能になっている。
しかし,個人でWikiを運用している場合,特別ページの閲覧を制限したいことがある。
特に気になるのはデータの外部書き出しなどだろうか。
自分の運営するサイトのコンテンツをまとめてコピーできる機能を誰でも使えるというのは,好ましくない場合もあるだろう。
特別ページの閲覧制限はLockdownエクステンションを利用することによって実現できる。
なお,LockdownエクステンションはMediawkiのバージョン1.12では利用できないということなので注意が必要である。
管理人は1.16.0で作業を行った。
1.エクステンションの導入
(1)上記ページより取得したファイルをextensionsディレクトリにコピー
ファイルが複数あるのでextentionsディレクトリの下にLockdownなどという名前のディレクトリを作成し,その中にまとめて入れるとよい。
(2)LocalSettings.phpの編集
下記の1行を追加する
require_once("$IP/extensions/Lockdown/Lockdown.php");
2.エクステンションの設定
閲覧制限の設定もLocalSettings.phpを編集して行う。
個別の特別ページの閲覧を特定のグループに制限するには,
$wgSpecialPageLockdown['ページ名'] = array('グループ名');
のように記述する。
ページデータの書き出しをsysopのみに限定する場合は次のようになる。
$wgSpecialPageLockdown['Export'] = array('sysop');
ページ名は,日本語で運用している場合であっても,「ページデータの書き出し」ではなく「Export」のように英語で定義されているものを指定する必要がある。
ページ名の定義はincludesディレクトリの中にあるSpecialPage.phpにあるので,それを参照する。