How can I redirect a 404 Error in a custom 404 page using Codeigniter?

Viewed 45258

Kind sirs, I'm using Codeigniter to build a blog. I might need a way to redirect a 404 error into a custom 404 page. Just like what Abduzeedo.com's 404 page. Is it possible to control this by using routes? Or should i use controllers to direct it to another view? Thanks very much!

9 Answers

there is another way which I use: by overriding Exception core class of Codeigniter. Firstly make sure your config file(system/application/config/config.php) subclass prefix is as following $config['subclass_prefix'] = 'MY_';

Then make a file named MY_Exceptions.php in system/application/libraries. Then override the function show_404() function here as follows.

class MY_Exceptions extends CI_Exceptions{
    function MY_Exceptions(){
        parent::CI_Exceptions();
    }

    function show_404($page=''){    

        $this->config =& get_config();
        $base_url = $this->config['base_url'];

        $_SESSION['error_message'] = 'Error message';
        header("location: ".$base_url.'error.html');
        exit;
    }
}

Now Error controller will be your error page, where the page will be redirected for 404 error.

No need to define any complexity. The process is very simple. First, go to your application->config->routes.php file and change this with your controller's function, where you simply load the header, footer, and 404.php page.

$route['404_override'] = 'welcome/_404';

Then come to your controller's page

function _404(){
$this->load->view("header");
$this->load->view("404");
$this->load->view("footer");

}

The same question is also available here Display a view for 404 error in CodeIgniter

Related