- 追加された行はこの色です。
- 削除された行はこの色です。
注((元々この[[FAQ/41]]のページは、質問スペースと間違えたユーザが2004-10-23に作成し、すぐに解答がつけられたようですがその後2007-08-19まで放置されていました。2007-08-19現在では内容が古く、また、PukiWIki初心者が見て分かりにくい書き方になっており、公式サイトのFAQとしてふさわしくないので、2007-08-19に書き換えました。オリジナルのソースはコメントアウトしていますのでソースを見るか、2004-10-23から2007-08-19までの間のバックアップをご覧ください。))~
**認証による閲覧制限をかけた秘密ページは出来ますか? [#a48f97a2]
-種別 : 運用
-バージョン : --
***質問 [#d706b659]
公開ページと自分専用のプライベートページをどうやったら分けられますか?~
また、任意のページに対する閲覧・編集・検索でアクセス制御を行うには?
また、任意のページに対する閲覧・編集・検索でアクセス制御を行う方法は?
***回答 [#h4721cc4]
PukiWiki 1.3の場合は改造が必要になります。詳細は[[dev:PukiWiki/1.3/ちょっと便利に/任意のページごとの閲覧・編集制限]]を参照してください。
PukiWiki 1.3の場合は改造が必要になります。~
詳細は、[[dev:PukiWiki/1.3/ちょっと便利に/任意のページごとの閲覧・編集制限]]を参照してください。
PukiWIki 1.4にはBasic認証による閲覧制限機能や編集制限機能があります。
PukiWiki 1.4にはBasic認証による閲覧制限機能や編集制限機能があります。(PHPの制限により基本的には、「[[Apache]]モジュールで[[PHP]]が実行されている」場合にしか利用できません)~
設定するには、pukiwiki.ini.phpの中の以下の部分を書き換えてください。
$auth_users = array(
'Group1' => 'hogehoge', // 閲覧許可グループ名 => パスワード
'Group2' => 'hegehege', // 編集許可グループ => パスワード
'Group2' => 'hegehege', // 編集許可グループ名 => パスワード
);
$auth_method_type = "pagename"; // ページ名で制限する
$read_auth = 1; // 閲覧許可有効 (0で無効)
$read_auth = 1; // 閲覧制限を有効 (0で無効)
$read_auth_pages = array(
'/^☆.*$/' => 'Group1', // 閲覧制限ページ(正規表現) => 閲覧許可グループ名
'/^☆.*$/' => 'Group1', // 閲覧制限の対象ページ(正規表現) => 閲覧許可グループ名
);
$edit_auth = 0; // 編集許可有効 (0で無効)
$edit_auth = 0; // 編集制限を有効 (0で無効)
$edit_auth_pages = array(
'/^.*$/' => 'Group2', // 編集制限ページ(正規表現) => 編集許可グループ名
'/^.*$/' => 'Group2', // 編集制限の対象ページ(正規表現) => 編集許可グループ名
);
$search_auth = 1; // 検索対象を閲覧可能ページだけに (0で無効)
上の例では、「☆」で始まる名前のページの閲覧に認証が必要になります。参考までに他にもいくつかの具体例を以下に示します。
$search_auth = 1; // 本文の検索対象を閲覧可能ページだけに制限する (0で無効)
上の例では、「☆」で始まる名前のページの閲覧に認証が必要になり、編集では全てのページで認証が必要になります。
>Memo: 説明を簡単にするために閲覧と編集で違うグループ名を割り当てていますが、実際には同じグループを複数の閲覧や編集の許可ルールに割り当てたり、1つの許可ルールへ複数の許可グループを同時設定する事も可能です。(詳しくは[[PukiWiki/Install/ユーザ認証]]を参照)
参考までに他にもいくつかの具体例を以下に示します。
+ すべてのページの編集に認証が必要、「:」で始まるページ名のページの閲覧に認証が必要
$auth_users = array(
'Group1' => 'hogehoge', // 閲覧許可グループ名 => パスワード
'Group2' => 'hegehege', // 編集許可グループ => パスワード
'Group2' => 'hegehege', // 編集許可グループ名 => パスワード
);
$auth_method_type = "pagename"; // ページ名で制限する
$read_auth = 1; // 閲覧許可有効 (0で無効)
$read_auth = 1; // 閲覧制限を有効 (0で無効)
$read_auth_pages = array(
'/^:.*$/' => 'Group1', // 閲覧制限ページ(正規表現) => 閲覧許可グループ名
'/^:.*$/' => 'Group1', // 閲覧制限の対象ページ(正規表現) => 閲覧許可グループ名
);
$edit_auth = 1; // 編集許可有効 (0で無効)
$edit_auth = 1; // 編集制限を有効 (0で無効)
$edit_auth_pages = array(
'/^.*$/' => 'Group2', // 編集制限ページ(正規表現) => 編集許可グループ名
'/^.*$/' => 'Group2', // 編集制限の対象ページ(正規表現) => 編集許可グループ名
);
$search_auth = 1; // 検索対象を閲覧可能ページだけに (0で無効)
$search_auth = 1; // 本文の検索対象を閲覧可能ページだけに制限する (0で無効)
+ 閲覧は誰でも自由に、編集だけ制限する
$read_auth = 0;
$edit_auth = 1;
+ 全ページに編集制限をかけるが、「☆」で始まるページ名だけは編集制限なし
$edit_auth = 1;
$edit_auth_pages = array(
'/^[^☆].*$/' => 'Group2', // 編集制限ページ(正規表現) => 編集許可グループ名
'/^[^☆].*$/' => 'Group2', // 編集制限の対象ページ(正規表現) => 編集許可グループ名
);
+ 全ページに編集制限をかけるが、「ゲストブック」「練習」「掲示板」だけは編集を許可
$edit_auth = 1;
$edit_auth_pages = array(
'/^((?!^(ゲストブック|練習|掲示板)$).)*$/' => 'Group2', // 編集制限ページ(正規表現) => 編集許可グループ名
'/^((?!^(ゲストブック|練習|掲示板)$).)*$/' => 'Group2', // 編集制限の対象ページ(正規表現) => 編集許可グループ名
);
~
:Reference|
[[正規表現]]~
[[Q&A/運営]]~
[[PukiWiki/Install/ユーザ認証]]~
[[質問箱/308]]~
[[dev:PukiWiki/1.3/ちょっと便利に/任意のページごとの閲覧・編集制限]]~
[[dev:PukiWiki/1.4/ちょっと便利に/任意のページごとの閲覧・編集制限]]~
//_/_/_/_/_/_/_/_/ ここから2004-2007/08のソース
//_/_/_/ trackerのエラー回避のため、中見出しと小見出しだけ書き換えてあります。
//
//[中見出し(trackerのエラー回避)]秘密ページは出来ますか? [#a48f97a2]
//-種別 : 動作環境
//-バージョン : --
//[小見出し(trackerのエラー回避)]質問 [#d706b659]
//私は公有ページとプライベートページがありますので、どうやって分けられる?
//
//例えば、別のDirectoryで?
//[小見出し(trackerのエラー回避)]回答 [#h4721cc4]
//
//追記:
//対象ページを参考しましたが、まだ分からない。
//例えば、php.ini で、下記を入れて:
// '/DeepSecret/' => 'hoge',
//
//新しいページを作るときに、どうやってページをDirectoryに入れる?
//例えば、「新規」ボタンを押した、「 /secret/pagename 」を入力しましたが、誰でも見えちゃう、、、
//
//>> 英語で:
//i created the directory entries in the ...php.ini
//but now how do i create new pages to be inside the "secret" directory?
//I tried "new page"
// /secret/pagename
//as the page name, but the / gets escaped to a safecode it looks like.
//
//手伝ってくれて、さきにありがとうございます。
//thanks in advance for any help!
//
//:Reference|
//[[dev::CategoryDev/Document/pukiwiki.ini.php]]~
//[[dev:PukiWiki/1.4/ちょっと便利に/任意のページごとの閲覧・編集制限]]
//
//----
//see also [[質問箱/308]].
//
//Check $auth_method_type and $read_auth in 'pukiwiki.ini.php'.
// $auth_method_type = 'pagename'
// $read_auth = 1;
//
//FAQ is not a question page, but summary page of frequently asked question and its answer.A question is to [[続・質問箱]].