Tutorials

Mengatasi 404 Not Found di CodeIgniter

CodeIgniter merupakan salah satu framework open-source andalan bagi pengembang website untuk saat ini. Namun tidak jarang pengembang mendapatkan kendala saat ingin men-deploy websitenya dari localhost ke server hosting. Salah satu error yang biasa terjadi adalah muncul 404 Not Found. Nah apa penyebab error ini? Yuk simak sama-sama artikelnya.

Baca juga: Clear Cache Laravel di cPanel

Penyebab Error

Penyebab error yang pertama biasanya terjadi karena versi php dan versi CodeIgniter yang digunakan tidak sesuai. Untuk CodeIgniter 3 silahkan menggunakan versi php 5.6 sedangkan CodeIgniter 4 sobat teknis harus menggunakan versi php 7.2 atau yang lebih tinggi.

Penyebab error yang kedua adalah file .htaccess yang tidak tersedia atau tidak sesuai.

Dan penyebab error yang ketiga adalah karena ada kesalahan pada penamaan controllernya.

Cek Versi CodeIgniter

Untuk melakukan pengecekan versi CodeIgniter sobat teknis bisa view file CodeIgniter.php melalui file manager panel hosting sobat, yang berada di dalam folder system > core > CodeIgniter.php. Lalu cari baris berikut:

/**
 * CodeIgniter Version
 *
 * @var string
 *
 */ const CI_VERSION = '3.1.10';

Dari contoh diatas CodeIgniter yang digunakan adalah versi 3, tapi tidak menutup kemungkinan versi CodeIgniter yang sobat teknis gunakan berbeda.

Cara Mengatasi

Menyesuaikan Versi PHP

Jika sobat teknis menggunakan hosting cPanel maka untuk melakukan perubahan versi php sangatlah mudah. Pertama silahkan sobat teknis login ke cPanel.

Klik menu Select PHP Version pada kelompok menu Software.

Lalu pada bagian Current PHP Version silahkan sesuaikan dengan CodeIgniter yang sobat teknis gunakan.

Jika di cPanel sobat tidak tersedia menu Select PHP Version, sobat teknis bisa menggunakan menu MultiPHP Manager.

Lalu checklist domain yang sobat gunakan, dan pada bagian PHP Version pilih sesuai dengan versi CodeIgniter yang sobat teknis gunakan, lalu klik Apply.

Memeriksa File .htaccess

Pertama periksa terlebih dahulu apakah di folder public CodeIgniter anda terdapat file .htaccess. Jika tidak ada silahkan anda buat sebuah file baru dengan nama .htaccess pastikan sobat menambahkan tanda titik (.) diawal nama filenya. Jika file .htaccess sudah ada, pastikan pada baris kodenya terdapat script berikut ini:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

Atau untuk lebih lengkapnya sobat bisa gunakan script berikut:

# Disable directory browsing
Options All -Indexes
 
# ----------------------------------------------------------------------
# Rewrite engine
# ----------------------------------------------------------------------
 
# Turning on the rewrite engine is necessary for the following rules and features.
# FollowSymLinks must be enabled for this to work.
<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
 
    # If you installed CodeIgniter in a subfolder, you will need to
    # change the following line to match the subfolder you need.
    # http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase
    # RewriteBase /
 
    # Redirect Trailing Slashes...
    RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)/$ /$1 [L,R=301]
 
    # Rewrite "www.example.com -> example.com"
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
 
    # Checks to see if the user is attempting to access a valid file,
    # such as an image or css document, if this isn't true it sends the
    # request to the front controller, index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
 
    # Ensure Authorization header is passed along
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
 
<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    ErrorDocument 404 index.php
</IfModule>
 
# Disable server signature start
    ServerSignature Off
# Disable server signature end

Baca juga: SMTP Error [421]: Failed to add recipient

Selanjutnya simpan file .htaccess nya, dan coba kembali akses website CodeIgniter sobat, seharusnya saat ini sudah dapat diakses dengan baik dan tidak 404 Not Found lagi.

Menyesuaikan Controller

Error 404 ini sering terjadi ketika seorang developer mendevelop codeigniternya di Windows, dan mengupload codeigniternya ke hosting yang menggunakan sistem operasi Linux. Dikarenakan pada sistem operasi Windows tidak menerapkan case sensitive, sementara di sistem operasi Linux penamaan file dan folder menggunakan case sensitive. Oleh karena itu perlu diperhatikan kembali pada penamaan controllernya.

Berikut ini merupakan contoh penamaan controller yang salah, pada kata welcome huruf “w” tidak menggunakan huruf Kapital.

<?php

class welcome extends CI_Controller {
 public function index()
 {
  $this->load->view('welcome_message');
 }
}

Seharusnya code diatas pada kata welcome ditulis dengan awalan huruf kapital sehingga menjadi Welcome. Berikut contoh yang benar:

<?php

class Welcome extends CI_Controller {
 public function index()
 {
  $this->load->view('welcome_message');
 }
}

Jika sudah disesuaikan bisa di save dan coba cek kembali akses website sobat. Semoga panduan kali ini bisa bermanfaat untuk sobat teknis yang membutuhkan.

tukang nulis

Seorang kepala rumah tangga biasa yang ingin sharing tentang pengalaman dan pengetahuannya. Gemar dengan dunia teknologi, alam, pertanian, dan perikanan. Hobby ngoprek, travelling dan bersepeda.

Recent Posts

Mengganti Password WiFi Indihome Terbaru 2024

Di era serba digital seperti sekarang ini, pasti tidak lepas dengan yang namanya koneksi internet.…

1 year ago

Reset Password WordPress Terbaru 2023

WordPress saat ini menjadi salah satu CMS primadona bagi sebagian besar orang yang ingin memulai…

1 year ago

Username dan Password Admin Indihome Terbaru 2023

Di dimasa pandemi ini memaksa kita untuk melakukan segala aktifitas di rumah. Bahkan untuk bekerja…

2 years ago

Could not complete sender verify callout – Email cPanel

Permasalahan email pada server web hosting khususnya cPanel sangatlah bervariasi, salah satunya adalah "could not…

2 years ago

Apa itu DNS?

Pengertian DNS (Domain Name System) adalah sebuah sistem yang menghubungkan URL (Uniform Resource Locator) dengan…

2 years ago

Melacak Email Spam di cPanel

cPanel adalah salah satu control panel yang berfungsi untuk mempermudah pengelolaan server. Yang mana didalam…

2 years ago

This website uses cookies.