2013-07-09 3 views
0

Проверка подлинности/перенаправление CakePHP на «users/login» отлично работает, если я не аутентифицирован, и я пытаюсь открыть страницу, т.е. "/ Сообщения/просмотр/2".cakephp - перенаправление не прошедшего проверку пользователя на ошибку «Отсутствующий метод»

Но если я попытаюсь получить то есть. "/ Пользователей/somethingNotExisting", то CakePHP бросил

Missing Method in UsersController 

Error: The action somethingNotExisting is not defined in controller UsersController 

Error: Create UsersController::somethingNotExisting() in file: app/Controller/UsersController.php. 

Это плохо:

  • Я не хочу, чтобы увидеть сообщение об ошибке

  • Создание missing_action.ctp не в порядке, в этом случае каждый может видеть макет по умолчанию (с меню и т. д.)

Как я могу заставить CakeP HP до перенаправляет любое неизвестное действие без аутентификации на страницу входа?

+0

Обычно вы не перенаправляете на 404s. Это создало бы лишние накладные расходы для вашего сервера. – mark

ответ

2

сообщение об ошибке вы получаете только в режиме разработки, если вы установите уровень отладки 0 в app/Config/core.phpConfigure::write('debug', 0); вы получите нормальный 404 не найден ответ Wich вы можете настроить по своему вкусу в app/View/Errors/error400.ctp

если люди видят ваше меню, когда вы не вошли в него, это ваша собственная ошибка, так как не скрывает эту часть для неавторизованных пользователей.

Просмотры страниц с ошибками находятся по адресу app/View/Errors/. Для всех ошибок 4xx и 5xx используются файлы вида error400.ctp и error500.ctp соответственно. Вы можете настроить их в соответствии с вашими потребностями. По умолчанию ваш app/Layouts/default.ctp также используется для страниц с ошибками. Если, например, вы хотите использовать другой макет app/Layouts/my_error.ctp для своих страниц с ошибками, а затем просто отредактируйте виды ошибок и добавьте оператор $this->layout = 'my_error'; в error400.ctp и error500.ctp. Таким образом вы можете скрыть любой макет по умолчанию и/или навигацию, которую вы хотите

+0

почти хороший. Мой макет по умолчанию отображается и отображается. Я бы хотел увидеть только 404 страницы, не более того. – boj

+0

см. Мое редактирование, чтобы использовать другие «default.ctp» для ваших страниц ошибок, чтобы вы могли скрыть все, что вы хотите, с ваших страниц ошибок –

Смежные вопросы

 Смежные вопросы