Cara Menghilangkan Index.php di Codeigniter - Pada saat kita membuat sebuah controller di codeigniter secara default untuk mengaksesnya melalui URL di browser kita harus mengikutsertakan index.php setelah alamat project/folder kita sebagai contoh :
http://localhost/belajar_ci/index.php/hello_controller
seperti contoh di atas pada URI secara default kita harus sealalu mengikut sertakan file index.php untuk menjalankan controller yang di buat. akan tetapi index.php ini dapat dihilangkan dengan cara mengatur konfigurasi dari Codeigniter dan juga konfigurasi dari server web Aapache , yaitu file .htaccess
Cara Menghilangkan Index.php di Codeigniter berikut ini adalah langkah - langkahnya :
1. Buka file config.php yang terdapat dalam direktori application/config
2. Cari bari kode berikut, biasanya terdapat pada baris ke-29 :
$config['index_page'] = 'index.php';
3. Hapus index.php nya menjadi seperti ini :
$config['index_page'] = '';
4. Save
5. Buatlah sebuah file baru di dalam root folder project codeigniter anda kemudian masukan kode berikut :
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
6. Save as dengan nama .htaccess jangan lupa untuk merubah tipenya ketika mensave menjadi All Files.
7. Sekarang coba anda akses controller anda tanpa menggunakan index.php , contoh :
http://localhost/belajar_ci/hello_controller
Jika berhasil maka anda dapat mengakses controller anda.
jika tidak browser akan menampilkan halaman not found. tidak berhasil ? tenang, sebenarnya ada beberapa jenis kode .htaccess yang berbeda yang dapat anda gunakan jika tidak berhasil biasanya kodenya kurang cocok, mungkin bukan jodohnya bkakakaka. sekarang coba beberapa kode .htacces yang berbeda di bawah ini :
Jenis 2 :
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php/$1 [L]
Jenis 3 :
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ nama_folder_project/index.php/$1 [L]
Jenis 4 :
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond $1 !^(index\.php|timthumb\.php|open-flash-chart\.swf|assets|captcha|application) RewriteRule ^(.*)$ ./index.php/$1 [L] </IfModule>
Jenis 5 :
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /nama_folder_project/ RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_URI} ^application.* RewriteRule ^(.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>
Jika masih belum berhasil juga sekarang pastikan bahwa modul mod_rewrite.co dari Apache anda telah di muat secara default oleh Apache, anda bisa mengeceknya dari file httpd.conf yang ada pada webserver anda, jika anda menggunakan XAMPP biasanya terdapat dalam direktori \xampp\apache\conf jika anda menggunakan WAMPP biasanya terdapat dalam direktori \wamp\bin\apache\apache.x.x.x\conf.
Buka file httpd.conf dengan notepad kemudian cari baris kode barikut :
LoadModule rewrite_module modules/mod_rewrite.so
Jika di depan kode berikut masih terdapat tanda pagar ( # ) hapus tanda pagarnya kemudian restart apache atau webserver anda dan cobalah lagi akses controller anda di browser tanpa menggunakan index.php.
Ada yg bs jelasin gak gan mksd dari syntax ini?
ReplyDelete- RewriteRule ^(.*)$ /index.php?/$1 [L]
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
Makasih gan
pojokmiliter.blogspot.com