{{ message }}

Cara Membuat URL yg Clean Tanpa index.php di Code Igniter

13/04/2017 | PHP
Cara Membuat URL yg Clean Tanpa index.php di Code Igniter

Secara default di Code Igniter dalam pemanggilan URL prosesnya selalu melalui file index.php. Misalnya Anda memiliki controller Resep_masakan dan method tradisional, maka urlnya adalah http://domainanda.com/index.php/resep_masakan/tradisional. Sebenarnya dengan sedikit konfigurasi routes, Code Igniter juga dapat Anda setting untuk mengarahkan URL ke fungsi yg Anda inginkan, namun masalahnya file index.php tadi selalu disertakan juga setiap kali Anda mengarahkan sebuah URL. Bagaimana caranya jika kita meniadakan index.php di URL kita sehingga URL akan lebih terlihat bersih seperti http://domainanda.com/resep_masakan/tradisional.

Berikut ini adalah cara yg mudah untuk menghilangkan index.php dari URL kita. Namun trik ini hanya berlaku pada Web Server Apache yg memang sering digunakan oleh Web Hosting Provider. Untuk Web Server lain Anda bisa mencari referensi-nya di google. Caranya cukup mudah yaitu dengan membuat file .htaccess (jangan lupa nama file harus ada titik sebelum tulisan htaccess) di-direktori utama dimana index.php Code Igniter Anda disimpan, berikut ini isi file .htaccess;

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

Cobalah membuka URL Anda tanpa index.php misalnya jika URL Anda tadinya Anda panggil begini http://domainanda.com/index.php/resep_masakan/tradisional maka sekarang dapat Anda panggil begini http://domainanda.com/resep_masakan/tradisional. Jika masih tidak jalan juga di komputer lokal (localhost) Anda, pastikan mod_rewrite Apache Anda dihidupkan dahulu. Untuk di Web Hosting sebenarnya, saya sudah mencoba beberapa kali dan berhasil, jika tidak jalan maka Anda dapat menanyakan pada provider Web Hosting-nya.

Catatan: Jika Anda sudah meniadakan index.php dari URL sebaiknya jangan menggunakan relative path lagi untuk mengambil image, css ataupun file lain di dalam views Anda, karena path utamanya jadi tak menentu. Saya sendiri selalu menggunakan absolute path dalam pengambilan file di views dengan menggunakan helper base_url(). Misalnya <img src=”<?= base_url() ?>nama-image.jpg”>