Cara menghapus index.php di CodeIgniter

1
Cara menghapus index.php di CodeIgniter

Pada postingan sebelumnya saya telah menjelaskan Tutorial CodeIgniter untuk pemula. Pada kali ini kita akan melihat cara menghapus index.php di CodeIgniter. Meskipun CodeIgniter menggunakan URL yang friendly untuk mesin pencari, pasti ada yang merasa sedikit janggal dengan adanya ‘index.php’ di antara url di CodeIgniter ini. Apakah kamu pernah bertanya-tanya bagaimana cara menghilangkannya untuk mendapatkan url yang lebih bersih dalam aplikasi CodeIgniter kamu?

Katakanlah CodeIgniter kamu memiliki url seperti ini: http://www.domain.com/index.php/kontak dan kamu ingin terlihat seperti http://www.domain.com/kontak. Ya,  kamu dapat melakukannya. Dalam CodeIgniter, menghapus index.php dari url harus dilakukan dengan menulis ulang url dalam file .htaccess.

Langkah 1: Aktifkan opsi mod_rewrite di Server APACHE kamu

Untuk menulis ulang (rewrite) url di file .htaccess, opsi mod_rewrite harus diaktifkan di server apache. Buka file apache “httpd.conf” dan cari baris berikut ini:

LoadModule rewrite_module modules/mod_rewrite.so

Jika kamu menggunakan XAMPP, lokasi file “httpd.conf” ada di direktori: xampp/apache/conf/httpd.conf

Jika baris di atas didahului dengan # (dalam hal ini, modul tersebut dinonaktifkan), kemudian hilangkan simbol # (hash) untuk memungkinkan url menulis ulang.

Atau dengan cari lain untuk memeriksa apakah mod_rewrite sudah aktif. Dengan menggunakan fungsi php phpinfo(). Silahkan buat file baru bernama info.php atau terserah. Lalu tambah kode berikut:

<?php phpinfo(); ?>

Simpan file tersebut di root direktori website kamu, lalu buka di browser dengan mengetik http://www.domain.com/info.php. Dan akan terlihat seperti ini:

mengaktifkan mod_rewrite di apache

Langkah 2: Buat file .htaccess

Berikutnya membuat file .htaccess di direktori root CodeIgniter. Untuk membuat file .htaccess, buka text editor favorit kamu dan membuat file teks baru. Simpan sebagai “.htaccess” (pastikan kamu mengetik nama file dalam tanda kutip untuk menghindari file yang akan disimpan sebagai file teks) di direktori root.

Sekarang copy paste kode ini ke file .htaccess dan simpan.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
    RewriteCond %{REQUEST_URI} !/system/.* [NC]
    RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

Jika kamu menjalankan aplikasiCodeIgniter sebagai subdirektori, bukan root domain seperti, http://domain.com/codeigniter/ bukan http://domain.com/ maka kode di atas tidak akan bekerja. Kamu harus men-tweaknya sedikit untuk memberitahu bahwa situs kamu dijalankan sebagai subdirektori. Tambahkan kode ini ke file .htaccess bukan yang di atas.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
    RewriteCond %{REQUEST_URI} !/system/.* [NC]
    RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

Untuk server localhost (XAMPP atau yang lainnya), gunakan kode dibawah ini:

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

Langkah 3: Mengubah pengaturan konfigurasi CodeIgniter

Buka file config.php di direktori application/config/config.php dan cari baris berikut:

$config['index_page'] = 'index.php';

Hapus index.php dan menjadi seperti ini:

$config['index_page'] = '';

Sekarang restart Apache dan periksa url nya di browser apakah sudah berhasil.

Jika itu tidak berhasil, kamu mungkin akan mengalami masalah dengan protokol uri. Cari pengaturan $config['uri_protocol'] = 'AUTO';di file konfigurasi lalu ganti dengan $config['uri_protocol'] = 'REQUEST_URI';.

Restart server apache lagi dan periksa situs codeigniter kamu untuk melihat index.php yang telah dihapus dari url codeigniter.

Cara menghapus index.php di CodeIgniter

BAGIKAN
Subscribe
Beritahu
guest
1 Comment
terlama
terbaru vote teratas
Inline Feedbacks
View all comments
Tiara
Tiara
September 2, 2019 09:31

Setelah nyari2 dan nyoba2 (bahkan sampe ke stackoverflow), gagal terus. Pas pake cara di web ini, berhasil ! Terima kasih, codingan.com