Codeigniter自定义404页面,适用于不同的控制器

时间:2017-03-05 15:42:32

标签: php codeigniter

我需要帮助才能获得正确的方法来显示不同控制器的自定义404错误页面。我有home, welcome作为我的控制器,但默认控制器是welcome。当用户登录时,会将其重定向到home。我需要每个conrtoller都有自己的自定义404错误页面。

1 个答案:

答案 0 :(得分:1)

Set up a custom 404 controller in the application/config/routes.php file.

$route['404_override'] = 'my404controller';

使用$this->uri->segment(0)创建My404controller并处理index()中的所有404错误。

<?php defined('BASEPATH') OR exit('No direct script access allowed');

  class My404controller extends CI_Controller {

  function __construct() {
    parent::__construct();
  }

  public function index() {

  // $this->uri->segment(1) is *original* controller segment before routing.

  set_status_header(404); // set 404 header

  if ($this->uri->segment(1) == 'home') {
     $this->load->view('home/home404');
     return;
  }

  if ($this->uri->segment(1) == 'admin') {
     $this->load->view('admin/admin404');
     return;
  }

  if ($this->uri->segment(1) == 'blog') {
     $this->load->view('blog/blog404');
     return;
  }

  // If there's no match to existing controller, default to generic 404 page view.
  $this->load->view('default404');

  }
}