Php 将所有404错误页面重定向到自定义404页面Codeigniter HMVC
我在我的主控制器中创建了一个自定义的404 not found方法 我已经设置了“$route['404_override']='home/notfound' 对于主域之后的未找到url(例如www.domain.com/uroetiuosyerit),它也能很好地工作 但是如果我输入一个类名,那么一个无效的url(例如www.domain.com/services/yersityijftnyutum)将显示默认的codeigniter 404内容Php 将所有404错误页面重定向到自定义404页面Codeigniter HMVC,php,codeigniter,Php,Codeigniter,我在我的主控制器中创建了一个自定义的404 not found方法 我已经设置了“$route['404_override']='home/notfound' 对于主域之后的未找到url(例如www.domain.com/uroetiuosyerit),它也能很好地工作 但是如果我输入一个类名,那么一个无效的url(例如www.domain.com/services/yersityijftnyutum)将显示默认的codeigniter 404内容 我将codigniter 3与hmvcmode
我将codigniter 3与
hmvc
modeler扩展一起使用设置一条路线,例如:
$route['404_override'] = 'errormanager/my404';
然后是一个控制器错误管理器
,其功能如下:
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>
404此页面不存在
当您使用HMVC方法时,请确保控制器
errormanager
和视图可以从任何地方访问,这意味着您需要在Codeigniter controller+视图文件夹(application\views和application\controller)中找到它而不是在扩展模块HMVC结构中在应用程序/控制器文件夹中创建类似My404的控制器,并添加以下代码:
<?php defined ('BASEPATH') or exit ('No direct script acces allowed');
class My404 extends CI_Controler {
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->output->set_status_header('404');
$this->load->view('err404');
}
}
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
<?php
$ci = new CI_Controller();
$ci =& get_instance();
$ci->load->helper('url');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>404 Page</title>
</head>
<body>
<div>
<p>How to Create Custom Codeigniter 404 Error Pages </p>
<div>
<p><a href="<?php echo base_url(); ?>">Go Back to Home</a></p>
</div>
</div>
</body>
</html>
现在,您可以在应用程序/view文件夹中创建视图,并添加以下代码:
<?php defined ('BASEPATH') or exit ('No direct script acces allowed');
class My404 extends CI_Controler {
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->output->set_status_header('404');
$this->load->view('err404');
}
}
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
<?php
$ci = new CI_Controller();
$ci =& get_instance();
$ci->load->helper('url');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>404 Page</title>
</head>
<body>
<div>
<p>How to Create Custom Codeigniter 404 Error Pages </p>
<div>
<p><a href="<?php echo base_url(); ?>">Go Back to Home</a></p>
</div>
</div>
</body>
</html>
404页
如何创建自定义Codeigniter 404错误页面
或者您可以根据主题或模板进行自定义。所以home是一个控制器,而不是一个函数?对吗?家在哪里?你需要把它从hmvc结构中去掉,提供一个“一网打尽”的功能,但是我想用我的模板模块来显示一个风格不错的404页面,那么我如何从普通的codeigniter控制器中调用一个“模块”呢?但是我想用我的页眉和页脚模板模块从控制器errormanager中加载它,只需确保在主application\views文件夹中也有header.php和footer.php。查看我的编辑