将所有404错误页面重定向到自定义404页面Codeigniter HMVC

时间:2017-05-28 18:20:38

标签: php codeigniter codeigniter-hmvc

我已在家庭控制器中创建了自定义404 notfound方法

我设置了$ route [' 404_override'] =' home / notfound';

并且它适用于主域名之后未找到的网址(例如www.domain.com/uroetiuosyerit)

但是如果我输入了一个类名,那么一个无效的网址(例如www.domain.com/services/yersityijftnyutyum)就会显示默认的codeigniter 404内容

我使用codigniter 3和hmvc建模器扩展https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

2 个答案:

答案 0 :(得分:2)

设置路径,例如:

$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控制器+视图文件夹中找到它(应用程序\视图和应用程序) \控制器)而不是扩展模块HMVC结构

答案 1 :(得分:0)

示例和快速解决方案如下:

  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错误
    要么
    redirect(base_url('my_404')); -从视图到my_404文件

好运!