PukiWikiで一部のページへのアクセスを制限する

2011-08-23 (火) 16:14:23 (4821d) | Topic path: Top / その他 / PukiWikiで一部のページへのアクセスを制限する

はじめに

PukiWikiで公開したくないページへのアクセスを制限する方法です.

このWikiでは静的コンテンツに偽装しているので,private/に非公開ページを置くことにして,名前にprivateを含むページを非公開としました.

PukiWiki 1.4.7で確認しました.

アクセス可能ユーザーの登録

まずはじめに,パスワードを暗号化します. Webブラウザーでpukiwikiのindex.php?md5=passにアクセスします.

画面が表示されたら,Phraseのところにパスワードを入力し,Computeボタンを押してパスワードを暗号化します.

pukiwiki.ini.phpのUser definitionのところを次のように変更します.

/////////////////////////////////////////////////
// User definition
$auth_users = array(
        // Username => password
        'wiki'      => '{SSHA}yUcWHhrXz0fQYQXu1m06sPPi7gNRTzZPMWIxLw=='
);

変更したのは,下から2行目だけです. この例では,ユーザー名がwiki,パスワードはpassを暗号化したものになっています.

制限対象ページの設定

次に,アクセス制限する対象を設定します.

pukiwiki.ini.phpのAughentication methodとRead authのところ(上で編集したUser definitionの直後)を次のように変更します.

/////////////////////////////////////////////////
// Authentication method

$auth_method_type       = 'pagename';   // By Page name
//$auth_method_type     = 'contents';   // By Page contents

/////////////////////////////////////////////////
// Read auth (0:Disable, 1:Enable)
$read_auth = 1;

$read_auth_pages = array(
        // Regex                   Username
        '#private#'             => 'wiki',
);

変更したのは,変数read_authの値と下から2行目だけです. この例では,privateという文字列を名前に含むページに対してwikiだけにアクセスを許可しています.

更新履歴に載せないようにする

最後に,どのようなページを作成したのか,また,編集したのか分からないようにするため,更新履歴(最新のxx件)に載せないようにします.

pukiwiki.ini.phpのIgnore listのところを次のように変更します.

/////////////////////////////////////////////////
// Ignore list

// Regex of ignore pages
$non_list = '^\:|#private#';

変更したのは最後の行だけです. この例では,:で始まるページ名とprivateを含むページ名を無視するようにしています.

もしすでに更新履歴(最新のxx件)に載ってしまっている場合は,plugin/recent.datを直接編集して該当する行を削除します.

参考情報

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS