Movabletypeを使ってウェブを構築しているのですが、一部のコンテンツや記事、あるいは特定のカテゴリーだけに関して、閲覧を制限するようなことは可能でしょうか?閲覧に関してパスワードなどを使うことができればよいです。htaccsessを使っていない方法でできるだけ簡便な方法がありましたらお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/06/10 17:30:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:n_maco2 No.1

回答回数3ベストアンサー獲得回数0

ポイント35pt

http://www.yahoo.co.jp/

↑URLはダミーです

やったことがないので具体的なソースコードなどは提示できませんが、MTはHTMLファイルの変わりにPHPファイルを吐き出すことも可能ですので、たとえば特定のカテゴリだけにパスワードを掛けたいのであれば、カテゴリ用のテンプレートの頭に下記のように認証用のPHPを埋め込んであげればいけるのではないかと思います。

if ( "認証を掛けたいカテゴリ名" == "そのページのカテゴリ名"){

  認証用関数();

}

id:masakiplus

ありがとうございます.phpにするアイデアというのは思い浮かびませんでした.

ただ,具体的な関数のスクリプトを含めた解答がいただければと思います.

2006/06/04 04:17:48
id:yoneto164 No.2

回答回数813ベストアンサー獲得回数94

ポイント35pt

特定のカテゴリーに対して認証を行う方法です。かなり手間な方法かと思いますが、もし宜しかったらご覧下さい。「管理用」というカテゴリーに対して「admin」と「123」でログインする方法です。

まず、全てのページをPHPにて出力するよう設定し、テンプレート→アーカイブ→「カテゴリー・アーカイブ」と「エントリー・アーカイブ」にて、先頭(<!DOCTYPE…)の前に以下のソースを追加します。

<?php

if (<$MTCategoryLabel$> == "管理用"){

if (!isset($PHP_AUTH_USER)) {

header('WWW-Authenticate: Basic realm="My Private Stuff"');

header('HTTP/1.0 401 Unauthorized');

exit;

} else if (isset($PHP_AUTH_USER)) {

if (($PHP_AUTH_USER != "admin") || ($PHP_AUTH_PW != "123"))

{

header('WWW-Authenticate: Basic realm="My Private Stuff"');

header('HTTP/1.0 401 Unauthorized');

exit;

}

}

}

?>

続いて記事を一覧に表示しないようにする必要がありますので「日付アーカイブ」と「メインページ」にて、<MTEntries> の直後に以下のソースを追加します。

<?PHP if (<$MTCategoryLabel$> != "管理用"){ ?>

続いて </MTEntries> の直前に以下のソースを追加します。

<?PHP } ?>

見かけ上はこれでOKです。あとはRSSやAtomを書き出さないように設定にする必要がありあります。もしも書き出したい場合は、これらの拡張子もPHPにして、

<?PHP if (<$MTCategoryLabel$> != "管理用"){ ?>と<?PHP } ?>を追加すればOKです。

実行結果は以下のようになります。

http://let.sub.jp/admin/test/

id:masakiplus

ありがとうございます!!

そのまま使えそうですね.

この方式で完全にニーズに答える事ができそうです!

ただ,MTのプラグインで解決することができれば,それにこした事がないので,もうしばらく解答は募集します.ありがとうございます!!

2006/06/04 04:19:32
  • id:yoneto164
    PHPの仕様により変更が必要となりました。

    $PHP_AUTH_USER
    を全て
    $_SERVER['PHP_AUTH_USER']

    $PHP_AUTH_PW

    $_SERVER['PHP_AUTH_PW']

    に変更することで動くようになりました。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません