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.