Как мне устранить неполадки в приложении CakePHP, застрявшем в цикле перенаправления?
Вопрос
У меня есть сайт CakePHP, который застрял в цикле перенаправления.Я удалил каждый фрагмент кода, который выполняет перенаправление, и я отключил автоматическую перенаправление для объекта Auth.
Это произошло, когда я вышел из системы с сайта, и сохранялось даже после удаления всех файлов cookie и простой попытки загрузить домашнюю страницу.Действие индекса находится в $this->Auth->allow
.
Я не должен, он продолжает пытаться перенаправить меня на /users/login, который затем перенаправляет циклы.Действие входа в систему также находится в списке разрешенных
У кого-нибудь есть какие-нибудь идеи, что могло вызвать это?
Решение
Ваш <cake>/app/app_controller
должен иметь beforeFilter()
метод со всеми параметрами поведения Автор компонент.Одним из таких способов поведения является направление отправки, когда пользователь не вошел в систему.
вы будете искать что-то вроде:
// 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';
Г'лак
Другие советы
Это также происходит в CakePHP 1.3, если вы добавляете пользовательский компонент, который расширяет Компонент вместо того, чтобы Объект.
эй, иногда, если у вас неправильное подключение к БД,,, приложение будет пытаться подключиться к mysql и будет находиться в цикле.Итак, всегда смотрите, правильна ли конфигурация базы данных.
до свидания.
У меня была точно такая же проблема, и когда я перезапустил службу MySQL, перенаправление прекратилось.Так что добавьте это в свой список того, что нужно проверить.
Что ж, похоже, что есть ряд причин, по которым это могло произойти в моем случае, к которому я пытался получить доступ
приложение cakeapplication/пользователи/добавить
и тут выяснилось, что я пропал без вести
'add'=>'*',
в массиве разрешений в usersController.php
Недавно у меня была эта проблема, и я не знаю почему, но она была исправлена, когда я изменил (в моем методе AppController beforeFilter()):
$this->Auth->allow('*');
Для
$this->Auth->allow();
Конечно, тогда в моих последующих контроллерах я отрицаю соответствующие действия.