Cara Redirect Error 404 CodeIgniter

Halo gaes, kali ini saya ingin berbagi masalah seputar CodeIgniter yang mendapati banyak sekali status error 404 akibat beberapa halaman telah dihapus.

Bagi pemerhati SEO, sudah barang tentu ini akan menjadi masalah besar, karena berpengaruh teradap nilai-nilai SEO. Lalu apakah bisa diatasi? tentu saja bisa, yaitu dengan cara custom halaman khusus untuk mengatasi 404, artinya semua halaman yang tidak ditemukan akan diarahkan ke halaman khusus yang telah disediakan.

Apa Fungsinya Custom Halaman 404 (tidak ditemukan)?

Untuk mengupayakan agar pengguna yang nyasar ke 404 (tidak menemukan apa yang mereka cari) tetap nyaman dengan situs Anda, dan memulai interaksi dengan alternatif lain.

Penyelesaian

Ada banyak cara untuk melakukannya di CodeIgniter diantaranya menggunakan class extends CI_Exeptions milik core CodeIgniter.

Cara 1 - CI_Exeptions

Pertama pastikan kamu mengaktifkan pengaturan perfix di file config.php (system/application/config/config.php)

$config['subclass_prefix'] = 'MY_';

Selanjutnya buat file bernama My_Exeptions.php di system/application/libraries. Langkah terakhir override fungsi show_404() sebagaimana berikut.

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;
    }
}

Sekarang setiap error 404 akan menampilkan pesan error custom Anda sendiri.

Cara 2 - Controller

Langkah pertama tambahkan route di configurasi.

$route['404_override'] = 'my404'; //my404 is class name.

Berikutnya, buat file class baru di controller dan isi dengan kode di bawah ini. Kode ini sangat mudah dipahami, jadi tidak perlu cemas.

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

    public function index()
    {
        $this->output->set_status_header('404');
        $data['content'] = 'error_404'; // View name
        $this->load->view('index',$data);//loading in my template
    }
    }
?>

Terakhir, buat file bari di folder view dengan nama "error_404.php" dan silakan custom tampilan htmlnya suka-suka Kamu.

Selamat, masalah beres!


Post a Comment

Previous Next

نموذج الاتصال