codeigniter 3.0 custom 404 not found error page

user2066448 picture user2066448 · Dec 27, 2015 · Viewed 24.9k times · Source

My problem is about custom error pages after upgrading to Codeigniter 3.0.

I used to have a Errors controller which handled 404 error page of the website - on this controller I have customized some parts of page, such as if user is logged in, it was showing username on the navigation bar and etc. (yes, on 404 error page).

After upgrading to CI 3.0, I have noticed that error pages are handled in different folder, I started to migrate to this way; but the problem is I can't load any variables to this page, such as session variables or can't even use any CI's functions on these pages.

I think this pages are supposed to be only HTML pages, but is there any way to load variables to these error pages?

Answer

Gopakumar Gopalan picture Gopakumar Gopalan · Dec 27, 2015

You need to set in application/config/routes.php the following route

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

Then you need to create a new controller in your controllers directory (application/controllers/)

<?php 
class My404 extends CI_Controller 
{
 public function __construct() 
 {
    parent::__construct(); 
 } 

 public function index() 
 { 
    $this->output->set_status_header('404'); 
    $this->load->view('err404');//loading in custom error view
 } 
} 

And create an err404 view. Thats all!

Refer :Reserved Routes