2011-06-22 20 views
1

私はCakePHPアプリケーションを開発中です。私は彼/彼女のIPアドレスに基づいて管理URLにユーザーをリダイレクトしようとしていて、そのために私は、すぐに条件の一致をリダイレクトループを取得していますapp_controller.phpでCakePHPのリダイレクトループ

 if(env('REMOTE_ADDR')=='foo') { 

     $this->redirect(array('action'=>'index', 'admin'=>1)); 
     echo $html->link(__('Logout', true), array('controller'=> 'users', 'action'=>'admin_index')); 
     } 

でこのコードを使用しています。 :(

答えて

5

これは何かの前にあなたのアプリケーションのコントローラの火災コードためである。あなたは、本質的に書いたコードが

  1. 訪問のURLに変換=>のAppControllerの火災は、/管理/コントローラ/インデックス/にあなたを送ります再び/管理/コントローラ/インデックス/ AppControllerの火災で
  2. とは、あなたに/管理/コントローラ/インデックス/
  3. として

もう一つの上には、あなたがあなたの後のリンクをエコーし​​ているように見える送りますリダイレクトを行うと、これはどんな目的にも役立たない。

あなたが$this->redirect(array('action'=>'index', 'admin'=>1));を行うときに、本質的にあなたがしている方のURLのindexアクションにリダイレクトしている、また、この

$url = 'Wherever you are redirecting to'; 
if (env('REMOTE_ADDR') == 'foo' && $this->params['url']['url'] != $url) { 
    $this->redirect($url); 
} 

のようなものは何あなたはおそらく必要である。あなたが何をしようとして、これは?もしそうなら、小切手を

$url = 'Wherever you are redirecting to'; 
if (env('REMOTE_ADDR') == 'foo' && $this->params['action'] != 'index' && $this->params['admin'] != 1) { 
    $this->redirect($url); 
} 
+0

のように変更する必要があります。こんにちはジョン、返信をありがとう、上記のコードを使用しましたが、私はまだリダイレクトループエラーを取得しています。 :( –

+0

ああ、申し訳ありません、それはちょうど、FTPサーバーがファイルをアップロードしていなかった:P –

関連する問題