CodeIgniter имеет файл /system/application/errors/error_404.php, который отображается, когда возникает ошибка 404 из-за того, что фактически является состоянием «контроллер не найден». Однако для моего проекта мне действительно нужно, чтобы эта ошибка обрабатывалась так же, как если метод отсутствует в классе контроллера. В этом случае я показываю обычное представление с красивой страницей «Страница не найдена: возможно, вы имели в виду это?...» с навигацией, созданной базой данных, и т. д.
Я думаю, что я мог бы сделать одну из двух вещей:
- Создайте вызов
header("Location: /path/to/error_page")
для перенаправления на обработчик 404 существующего (или специального) контроллера. - Добавьте какой-нибудь маршрутизатор по умолчанию, чтобы справиться с этим.
Как лучше всего добиться необходимого результата? Есть ли подводные камни, на которые стоит обратить внимание?