リダイレクトループでスタックしたCakePHPアプリケーションをトラブルシューティングするにはどうすればよいですか?
質問
リダイレクトループで立ち往生しているCakePHPサイトがあります。リダイレクト<!> ampを実行するコードをすべて削除しました。 AuthオブジェクトでautoRedirectをオフにしました。
これは、サイトからログアウトしたときに発生し、すべてのCookieを削除し、ホームページをロードしようとした後も持続します。インデックスアクションは$this->Auth->allow
にあります。
すべきではありません。/users/loginにリダイレクトされ続け、ループがリダイレクトされます。ログインアクションも許可リストにあります
これを引き起こす可能性のあるアイデアはありますか?
解決
<cake>/app/app_controller
には、 Auth コンポーネントのすべての動作を備えたbeforeFilter()
メソッドが必要です。これらの動作の1つは、ユーザーがログインしていないときに送信する場所です。
次のようなものを探します:
// If cake should redirect automatically or you will do it in the User.login()
$this->Auth->autoRedirect = true;
// And if the autoRedirect is true, where to redirect
$this->Auth->loginRedirect = '/user/login';
G'luck
他のヒント
オブジェクトの代わりにコンポーネントを拡張するカスタムコンポーネントを追加した場合、これはCakePHP 1.3でも発生します。
ちょっと、データベース接続が間違っていると、アプリケーションはmysqlへの接続を試行し、ループします。 そのため、データベースの設定が正しい場合は常に見てください。
さようなら。
まったく同じ問題があり、mySqlサービスを再起動するとリダイレクトが停止しました。これをチェックするもののリストに追加します。
まあ、私がアクセスしようとしていた私の場合、これが起こる理由はいくつかあるようです
cakeapplication / users / add
そして行方不明になった
'add'=>'*',
usersController.phpの権限配列内
最近この問題が発生しましたが、理由はわかりませんが、(AppController beforeFilter()メソッドで)変更すると修正されました:
$this->Auth->allow('*');
to
$this->Auth->allow();
もちろん、その後のコントローラーでは、適切なアクションを拒否します。