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

| Topic path: Top / その他 / PukiWikiで一部のページへのアクセスを制限する

*はじめに [#j29cfd8d]

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

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

PukiWiki 1.4.7で確認しました.


*アクセス可能ユーザーの登録 [#l111c4c2]

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

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

pukiwiki.ini.phpのUser definitionのところを次のように変更します.
#geshi(php){{
/////////////////////////////////////////////////
// User definition
$auth_users = array(
        // Username => password
        'wiki'      => '{SSHA}yUcWHhrXz0fQYQXu1m06sPPi7gNRTzZPMWIxLw=='
);
}}
変更したのは,下から2行目だけです.
この例では,ユーザー名がwiki,パスワードはpassを暗号化したものになっています.


*制限対象ページの設定 [#oc0a5e94]

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

pukiwiki.ini.phpのAughentication methodとRead authのところ(上で編集したUser definitionの直後)を次のように変更します.
#geshi(php){{
/////////////////////////////////////////////////
// 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だけにアクセスを許可しています.


*更新履歴に載せないようにする [#gb27c68c]

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

pukiwiki.ini.phpのIgnore listのところを次のように変更します.
#geshi(php){{
/////////////////////////////////////////////////
// Ignore list

// Regex of ignore pages
$non_list = '^\:|#private#';
}}
変更したのは最後の行だけです.
この例では,:で始まるページ名とprivateを含むページ名を無視するようにしています.

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


*参考情報 [#h5e062b1]
-[[Pukiwikiで一部のページにのみパスワード認証をかける方法:http://xtori.blogspot.com/2009/07/pukiwiki.html]] | 研究な日々
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS