【Codeigniter】独自404ページを表示する

codeigniter WEB

ちょっと迷ったので備忘録。
Codeigniterで独自の404ページを表示させる方法です。
独自のコントローラを使用するので、柔軟に対応できます。
が、今回は通常の404.htmlを表示するだけの簡素なものです。

ルーティングの設定

$route['404_override'] = 'errors/not_found';

これでルーティングは終了。
コントローラ名とメソッド名は自由に変更可能です。
(ただし、コントローラ名が「Error」だとうまく動作しなかったです。よくある名前なので、どこかで使っているのかも?)

エラー(404)用コントローラ作成

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

class Errors extends CI_Controller {
    public function __construct() {
        parent::__construct();
    }

    /**
      * 404ページ
      */
    public function not_found() {
        // HTTPステータスコード404を設定
        $this->output->set_status_header('404');
        // 404エラー用View
        // 今回は「public_html」ディレクトリの404.htmlを参照してます。パスは適宜変更してください。
        $this->load->view("../public_html/404.html");
    }
}

404.htmlの記述は省きます。
今回は静的ページと動的ページ(Codeigniter)が混在しているサイトでしたので、404ページは静的ページでした。
404ページをSmartyなどで作ってあげると色々なことが出来るかと思います。

タイトルとURLをコピーしました