CodeIgniter removing index.php by mod_rewrite

Jika kamu sedang berusaha untuk menghapus index.php dari URL-nya CodeIgniter dari

http://localhost/index.php/welcome/index/

Menjadi

http://localhost/welcome/index/

Dan entah kenapa mendapat 500 Internal Server Error, maka inilah beberapa hal yang mesti kamu lakukan 🙂

THINGS TO CHECK

Apakah Apache mod_rewrite sudah menyala?

Kamu buka file httpd.conf (kalau di wamp biasanya terletak di C:\wamp\bin\apache\apache2.2.8\conf) atau coba search file itu di foldernya wamp/ xampp/phptriad kamu 🙂

Pastikan baris

LoadModule rewrite_module modules/mod_rewrite.so

Tidak dicomment (ga ada tanda # di-depannya)

Restart Apachemu 🙂 Masi 500 Error Kah? maka lanjut ke langkah selanjutnya.

Apakah config.php sudah benar

Buka file configmu

system/application/config/config/php

cari baris ini

$config[‘index_page’] = “index.php”;

Ganti index.php menjadi blank

$config[‘index_page’] = “”;

Coba refresh sitenya, Masi 500 error? next! 🙂

Apakah .htaccess sudah dibuat

CodeIgniter manual menyarankan kita untuk membuat file .htaccess di root foldernya CodeIgniter (di tempat dimana index.php berada) yang berisi syntax

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

syntax itu berlaku jika kamu menyimpan CodeIgniter kamu di lokasi root (/) dari web kamu, dan akan menyebabkan error jika kamu menyimpan CodeIgniter itu di folder tambahan. Coba modif syntax yang disarankan oleh CodeIgniter User Guide itu menjadi

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

Notice kalau aku menghilangan tanda (/) yep.. itu membuat CodeIgniter tidak menggunakan root (/) sebagai referensi, dan menggunakan lokasi relatif dimana .htaccess itu berada.

Well seharusnya jika kamu menggunakan Wamp, Xampp… setelah sampai ke tahap ini 500 Error itu tidak akan terjadi lagi 🙂