Перенаправить все страницы ошибок 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

Ниже приведены пример и быстрое решение:

  1. Измените с (application / config / autoload.php, Ln 92):
    $autoload['helper'] = array(); кому
    :
    $autoload['helper'] = array('url');

  2. Перейдите в application/view/errors/html/error_404.php и добавьте следующую строку:
    redirect(base_url()); - на главную страницу все ошибки 404
    или
    перенаправления (base_url('my_404')); - в файл my_404 из просмотра

Удачи!

Другие вопросы по тегам