Saat kita mengakses aplikasi dengan framework CodeIgniter 3, secara default pada address bar browser kita akan menampilkan index.php. Seperti:

http://localhost/contoh/index.php/hello-world

Dan apabila kita menghilangkan index.php pada URL tersebut, maka aplikasi tersebut malah menjadi error. Penggunaan index.php pada URL tersebeut sebenarnya tidak menjadi masalah besar, hanya saja terlihat kurang rapih. Bisa kita bandingkan dengan URL berikut:

http://localhost/contoh/hello-world

Menurut kalian mana yang lebih enak untuk dilihat ataupun diingat? Kalau saya pribadi memilih yang tanpa menggunakan index.php di URL-nya. Karena lebih “bersih” dan tentu lebih SEO friendly menurut saya.

Jadi, bagaimana cara menghilangkan index.php di CodeIgniter 3 namun aplikasi tetap berjalan dengan baik?

Konfigurasi Aplikasi (config.php)

Tahap pertama yaitu pengaturan dari segi aplikasi CodeIgniter 3.

Pertama, buka file config.php pada aplikasi CodeIgniter 3 yang akan dihilangkan URL index.php-nya. File tersebut ada pada:

application/config/config.php

Kemudian, cari konfigurasi index_page pada file tersebut:

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

Selanjutnya hapus value index.php pada konfigurasi tersebut, sehingga nilainya menjadi seperti ini:

$config['index_page'] = '';

Konfigurasi pada aplikasi sudah selesai. Selanjutnya adalah konfigurasi pada web server.

Konfigurasi Apache

Untuk konfigurasi web server yang menggunakan Apache, pastikan modul rewrite sudah diaktifkan.

Pengaturan .htaccess

Untuk aplikasi CI3 yang berjalan menggunakan Apache, kita cukup menambah konfigurasi di dalam .htaccess. Buka document root dari aplikasi yang akan kita hilangkan URL index.php-nya. Kemudian buatlah file .htaccess pada direktori tersebut. Selanjutnya isi dengan script berikut:

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

Konfigurasi LiteSpeed

Untuk aplikasi yang menggunakan LiteSpeed sebagai web server-nya, konfigurasi yang digunakan sama seperti yang menggunakan Apache. Cukup membuat file .htaccess.

Konfigurasi NGINX

Untuk konfigurasi pada NGINX, pertama buka file konfigurasi .conf dari aplikasi tersebut. File .conf ini biasanya terletak pada /etc/nginx/conf.d/.

Kemudian cari bagian:

location / {
  //.....
}

Ganti try_files pada bagian tersebut, sehingga kurang lebih akan menjadi seperti ini:

location / {
  try_files $uri $uri/ /index.php?$query_string;
  //.....
}

Demikian cara untuk menghilangkan index.php di CodeIgniter 3. Semoga tulisan saya ini bermanfaat.