views/pages以下にpr.ctpという静的ファイルを設置し、
以下が有効にした状態で、
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
http://domain/pages/pr/ にアクセスしましたが、
そこで、なぜか、authコンポーネントが動いているようで、
http://domain/user/loginに
リダイレクトしています。
そもそも、ログイン画面は、userではなくmypageに指定してるので、
http://domain/mypage/login
になるのが理想ですが、そうはなりません。
設定ミスかと思い、以下を参照しましたが、設定は有効にされています。
$this->Auth->logoutRedirect = array(
'controller' => 'mypage',
'action' => 'logout'
);
考えられる原因について教えてほしいです。。。
どうぞよろしくお願い致します。
コメントに書いたように「logoutRedirect」はログアウト時のリダイレクト先です。
未ログイン状態で認証が必要なページにアクセスした時のリダイレクト先は、デフォルトで「users」コントローラーの「login」アクションになっていますが、「loginAction」で変更可能です。
ちなみに「loginRedirect」はログイン時(※認証が成功した時)のリダイレクト先です。
http://book.cakephp.org/1.3/ja/The-Manual/Core-Components/Authentication.html
loginAction
ログインを行うアクションをデフォルトの /users/login から変更します。<?php $this->Auth->loginAction = array('admin' => false, 'controller' => 'members', 'action' => 'login'); ?>loginRedirect
通常、 AuthComponent は認証が実行されるまえのコントローラ/アクションのペアを記憶しており、認証が成功したらユーザをそこにリダイレクトします。しかし、この変数に特定のコントローラ/アクションのペアを定義することで、そこへ強制的にリダイレクトするようにできます。<?php $this->Auth->loginRedirect = array('controller' => 'members', 'action' => 'home'); ?>logoutRedirect
デフォルトでは、ログアウト後にユーザは自動的にログインアクションへリダイレクトされます。 このリダイレクト先のアクションを定義できます。<?php $this->Auth->logoutRedirect = array(Configure::read('Routing.admin') => false, 'controller' => 'members', 'action' => 'logout'); ?>
すみません。別の質問が締切りしようとしたらキャンセルになってしまいました。
2013/01/19 17:28:53なんでそちらで回答いただいた分を含めて、お礼ポイントご返却しますね。
ありがとうございました。
わざわざもう一つの質問のポイントまでありがとうございます。
有り難く頂戴いたしました。
> AppControllerがあれば、MemberControllerの方には不要にも感じますが、、
もしかしてbeforeFilter()を残して、memberコントローラ専用の「$this->Auth->allow('logout', 'index');」だけ設定してあるのですか?
この場合、次のようにするといいようです。
※全体に適用する設定をAppControllerに設定しておいて、MemberController専用の設定をしますが、その際に「parent::beforeFilter()」でAppControllerの設定も読み込んで適用させます。
http://techracho.bpsinc.jp/baba/2010_06_14/1748
2013/01/19 21:01:191.3では解説されていないので2.0用になりますが、こちらが分かりやすいと思います。
http://book.cakephp.org/2.0/ja/tutorials-and-examples/blog-auth-example/auth.html