Pages

06 September, 2009

Menghilangkan index.php pada URL CodeIgniter

“Oy Website lw pake CI ya ?!”, gara-gara index.php di URL langsung deh ketauan!. Sewaktu instal CI otomatis url aplikasi kita kira-kira bentuknya akan menjelma menjadi seperti ini:http://localhost/NamaAplikasi/index.php/NamaController

Sepertinya aplikasi terlihat kurang keren ya karena ada embel-embel index.php, Pasti orang yang mengakses langsung tahu bahwa itu pake CI. Setelah blog walking saya coba sarikan langkah-langkah untuk menghilangkan index.php agar URL terlihat lebih bersih




Langkah 1:
Pastikan module mod_rewrite pada apache sudah diload. Jika belum aktifkan dahulu, caranya sebagai berikut :

Edit file httpd.conf Apache2 kamu , uncomment/tambahkan baris ini (biasanya ada di bagian Dynamic Shared Objects):LoadModule rewrite_module modules/mod_rewrite.soSesuaikan pathnya dengan tempat dimana modul apache2 disimpan. Pada contoh di atas dianggap mod_rewrite.so terletak di /usr/lib/apache2/modules, pada windows biasanya cukup uncomment saja, kemudian restart apache2 kamu.

Langkah 2:
Buka system/application/config/config.php, set parameter index file menjadi kosong.
$config['index_page'] = "";

Langkah 3:
Buat sebuah file .htaccess pada root directory code igniter (sejajar dengan index.php, /database, /public, /system ) isikan file tersebut dengan aturan ini:

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

Sekarang coba akses aplikasi kamu tanpa index.php, misalnya:
http://localhost/Aplikasiku/SomeController ”EXPECTO PATRONUM!” , jengjeng… :D

Keterangan:

RewriteEngine On
Mengaktifkan engine Rewrite (engine untuk pola penulisan ulang pada URL)

RewriteCond %{REQUEST_FILENAME} !-f
Test, apakah file (-f ) yang diminta pada url {REQUEST_FILENAME} tidak (!) eksis.

RewriteCond %{REQUEST_FILENAME} !-d
Test, apakah direktori (-d) yang diminta pada url tidak (!) eksis.

RewriteRule ^(.*)$ index.php/$1 [L]
Bila kedua kondisi di atas (RewriteCond) terpenuhi maka terapkan aturan ini. Kita minta tolong sama apache agar menyisipkan kata index.php sebelum URI terakhir.

Misalnya kita merequest “SomeController” pada:
http://localhost/Aplikasiku/SomeController,

setelah di terapkan RewriteRule maka bentuk URL akan dirubah menjadi :
http://localhost/Aplikasiku/index.php/SomeController

Referensi:
http://zona90.wordpress.com/2009/07/20/menghilangkan-index-php-pada-url-codeigniter/

No comments: