Перенаправить все страницы ошибок 404 на пользовательский код страницы 404 HMVC
Я создал пользовательский метод notfound 404 в моем домашнем контроллере
я установил $route['404_override'] = 'home/notfound';
и это хорошо работает для не найденных URL-адресов сразу после основного домена (например, www.domain.com/uroetiuosyerit)
но если я ввожу имя класса, то недействительный URL (например, www.domain.com/services/yersityijftnyutyum) показывает содержимое codeigniter 404 по умолчанию
я использую codigniter 3 с расширением моделера hmvc https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc
1 ответ
Настроить маршрут, например, так:
$route['404_override'] = 'errormanager/my404';
затем контроллер errormanager
с такой функцией, как:
public function my404(){
$data['menu']=$this->Sitemanager->get_menu();
$this->load->view('header',$data);
$this->load->view('custom404');
$this->load->view('footer');
}
и вид custom404.php
как это:
<div class="my404"> 404 this page does not exist</div>
При использовании подхода HMVC убедитесь, что контроллер errormanager
и представление может быть достигнуто отовсюду, что означает, что вам нужно найти его прямо в папке контроллера Codeigniter +view (application\views and application\controller), а не в структуре расширенных модулей HMVC
Ниже приведены пример и быстрое решение:
Измените с (application / config / autoload.php, Ln 92):
$autoload['helper'] = array(); кому
:
$autoload['helper'] = array('url');Перейдите в application/view/errors/html/error_404.php и добавьте следующую строку:
redirect(base_url()); - на главную страницу все ошибки 404
или
перенаправления (base_url('my_404')); - в файл my_404 из просмотра
Удачи!