サポート » 使い方全般 » auth_redirectについて

  • 解決済 kawanishi

    (@kawanishi)


    閲覧を登録ユーザ限定にしたいと思い調べていたら、過去に同様の内容がありましたので、その方法と同じようにしてみました。


    ■閲覧を登録ユーザ限定にする方法

    wp-blog-header.php というファイルの一部を書き換えて、無事にログイン画面が表示されるようになったのですが、いくら正しいユーザ名とパスワードを入力しても、またログイン画面が表示されてしまいます。

    何か間違っているのでしょうか? それとも、他に設定しなければならないことがあるのでしょうか? もしご存知の方がいらっしゃれば、ぜひ、お知恵をお借りできればと思います。
    宜しくお願い致します。

    ・WordPressバージョン:2.8.6
    ・PHPバージョン:5.2.11
    ・書き換えた後のwp-blog-header.phpの内容
    <?php
    /**
    * Loads the WordPress environment and template.
    *
    * @package WordPress
    */
    if ( !isset($wp_did_header) ) {
    $wp_did_header = true;
    require_once( dirname(__FILE__) . ‘/wp-load.php’ );
    if (is_user_logged_in()){
    }
    else {
    auth_redirect();
    };
    wp();
    require_once( ABSPATH . WPINC . ‘/template-loader.php’ );
    }
    ?>

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 補足です。

    タイトルに auth_redirect としてしまったのが失敗だったかもしれませんが、どうもログインの判定( is_user_logged_in() )が上手く動いてないような気がします。

    http://xxxx.com/wp/wp-login.php にアクセスすると、ログイン画面が表示されますが、こちらは問題なく通って、ダッシュボードが表示されます。
    この状態を「ログインしている状態」と判断してくれるのであれば、このままhttp://xxxx.com/wp/ へアクセスすれば、ログイン画面をスルーしてアクセスできると踏んだのですが、やはりログイン画面が表示され、後は最初に投稿させてもらった内容の通りです。(もちろん、この解釈が正解でなければ意味は無いのですが(^^;)

    自己レスです(全部自己レスですが・・)
    解決した訳ではないのですが、原因が判明したので、もし万が一にも何かの役に立てばと思いましたので、記述させてもらいます。

    繰り返しログイン画面が出てしまう原因ですが、「設定」⇒「一般(一般設定)」の中にある、ブログのアドレス(URL)を設定していた場合に発生するようです。試しに、ブログのアドレス(URL)を消したところ、ログインできました。

    私が WordPress に設定していた内容ですが、ブログ用ドメイン hogehoge.com を取得したので

     WordPressのアドレス(URL) http://本来のサーバのURL/~user/wp
     ブログのアドレス(URL)   http://hogehoge.com

    としていました。そして、WordPressをインストールしたディレクトリの、1つ上の階層(~user直下)にも、ディレクトリ構造に合わせて若干書き換えた index.php を配置することで、http://hogehoge.com へアクセスすれば、ブログが表示できていました。

    ただ、ブログのアドレス(URL)を空にする(=自動的にWordPressのアドレス(URL)で入力しているアドレスと同じになる)と、これまで作ったブログがうまく表示出来なくなってしまいました。

    また、認証⇒ブログを表示する流れが、最初にイメージしていたものと違っていました。今回の方法だと、認証⇒一旦、登録ユーザのダッシュボードが表示される⇒画面上部の「サイトの表示」をクリックしてブログに移動する・・・という流れになってしまいました。認証したら、すぐにブログが表示されるものと思っていました。想定していた使い方が出来なかったので、この方法は諦めることにしました。

    文章をまとめるのが上手くなくて、スミマセン。しかも、あまり役に立てちそうな情報ではありませんが、今回の顛末を報告させて戴きました。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    なるほど。おそらくクッキー回りの問題ですね。ブログ用のドメイン (本当は hogehoge.com なんかじゃないですよね?) と、サーバーのドメインが異なると、クッキーのドメインが変わってしまいます。クッキーは URL ごとに管理されていて、異なるドメインへのクッキーを使わないことになっているので、ログイン状態かどうかの判定ができてなかったのだと思われます。

    。認証したら、すぐにブログが表示されるものと思っていました。

    本来はそういう動作をするはずです。今回は不正なログインクッキーとみなされたので、ブラウザーのクッキーを送信しないようにして、ログイン画面を出すようになっています。

    あと、「ブログ用ドメイン hogehoge.com を取得したので」とありますが、本当は違うドメインなんですよね? 例示用には example.com とか example.jp とかが用意されているので、それを使ってください。

    少なくとも hogehoge.com は 1996年に取得されている由緒ある (?) ドメイン名です。

    Domain Name: HOGEHOGE.COM
       Registrar: GMO INTERNET, INC. DBA ONAMAE.COM AND DISCOUNT-DOMAIN.COM
       Whois Server: whois.discount-domain.com
       Referral URL: http://www.discount-domain.com
       Name Server: NS.NAMEDSERVER.NET
       Name Server: NS2.NAMEDSERVER.NET
       Status: clientTransferProhibited
       Updated Date: 09-mar-2009
       Creation Date: 09-mar-1996
       Expiration Date: 10-mar-2010

    lilyfan さん、お返事ありがとうございました。

    まず、誤解を招く表現があったことをお詫びします。

    あと、「ブログ用ドメイン hogehoge.com を取得したので」とありますが、本当は違うドメインなんですよね? 例示用には example.com とか example.jp とかが用意されているので、それを使ってください。

    仰る通り、あくまでも例示として出したかっただけで、実際に取得したドメインは違います。投稿などに慣れていなくて、何かしらの読み物を読んだ時に、例示として「hogehoge」という表記を使われていたのを思い出し、つい同じようにしてしまいました。以後、気をつけたいと思います。

    クッキーの件、解説をありがとうございました。なんとなく、もやもやした中で「まあ、仕方が無いか・・」と諦めていたので、なぜそうなるのかが解ってスッキリしました。

    現在、Basic認証で出来るように作業しているのですが、こちらも上手くありません(^^;
    その時は、改めてlilyfan さんや皆さんのお知恵を拝借できればと思っておりますので、どうぞ、宜しくお願い致します。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「auth_redirectについて」には新たに返信することはできません。