Это потому, что ваш контроллер приложения запускает код раньше всего. Код, который вы написали, по существу переводит на
- Посетите URL => AppController срабатывает, отправляет вас в / admin / controller / index /
- В / admin / controller / index / AppController снова запускается и отправляет вас в / admin / controller / index /
- Как указано выше
Еще одна вещь, вы, кажется, повторяете ссылку после того, как делаете переадресацию, это не имеет смысла.
Что вы, вероятно, хотите, что-то вроде этого
$url = 'Wherever you are redirecting to';
if (env('REMOTE_ADDR') == 'foo' && $this->params['url']['url'] != $url) {
$this->redirect($url);
}
Кроме того, когда вы делаете $this->redirect(array('action'=>'index', 'admin'=>1));
, вы по существу перенаправляете на действие index любого URL-адреса, на котором находитесь. Это то, что вы пытаетесь сделать? Если это так, вам нужно изменить чек на что-то вроде
$url = 'Wherever you are redirecting to';
if (env('REMOTE_ADDR') == 'foo' && $this->params['action'] != 'index' && $this->params['admin'] != 1) {
$this->redirect($url);
}