Cara Menghilangkan index.php di CodeIgniter, CodeIgniter adalah salah satu web framework berbasis PHP dengan menerapkan model MVC (Model-View-Controller) untuk membangun sebuah aplikasi berbasis web/website yang dinamis menggunakan PHP. CodeIgniter sendiri juga memudahkan para developer untuk membangun sebuah aplikasi berbasis web/website dengan cepat dibandingkan dengan membuatnya dari awal. Cara penggunaan dari CodeIgniter sendiri juga mudah, oleh sebab itu banyak yang menggunakan framework ini terutama bagi yang masih dalam tahap belajar. Namun, saat mengakses suatu URL/function penulisannya cukup panjang dikarenakan Application Flow Chart dari CodeIgniter itu sendiri.
Dalam pembahasan kali ini tidak membahas bagaimana menghapus index.php tersebut karena index.php di CodeIgniter berfungsi sebagai Front Controller yang menginisialisasi sumber daya yang dibutuhkan untuk menjalan CodeIgniter. Namun, membahas bagaimana cara menghilangkan index.php dari URL untuk mengkases suatu Function. Misal, disini kita mempunyai suatu Function yang terdapat didalam source CodeIgniter benama “bayusapp”, Controller bernama “Admin”, dan nama Function “Beranda” maka untuk mengkases Function tersebut harus dituliskan http://localhost/bayusapp/index.php/Admin/Beranda. Jika index.php sengaja dihapus dan tanpa konfigurasi khusus maka saat mengakses dengan URL http://localhost/bayusapp/Admin/Beranda maka akan muncul pesan “Object Not Found!”. Hal ini dikarenakan Application Flow Chart tersebut yang berfungsi sebagai Front Controller. Jika ingin menghilangkan index.php tersebut dapat menggunakan beberapa code yang disimpan dengan nama .htaccess dan beberapa konfigurasi pada CodeIgniter. Berikut cara menghilangkan index.php di CodeIgniter.

    1. Menghapus index.php pada config.php
      Cari pengaturan index_page didalam folder application/config lalu buka file config.php. Setelah membuka file config.php dapat menekan Ctrl + F lalu tuliskan “index_page” tanpa tanda kutip atau scroll ke bawah pada line ke-38. Maka akan menemukan hasil seperti dibawah ini.

      $config['index_page'] = 'index.php';

      Kemudian hapus index.php tersebut sehingga menjadi seperti dibawah ini.

      $config['index_page'] = '';
    2. Membuat file .htaccess
      Setelah menghapus index.php pada file config.php langkah selanjutnya adalah membuat file .htaccess yang akan disimpan didalam root CodeIgniter atau dalam satu deretan folder application, system, user_guide, dll yang terdapat dalam CodeIgniter tersebut. File .htaccess ini tidak memerlukan ekstensi meskipun didepannya dituliskan dengan tanda titik “.”. Untuk membuat file .htaccess caranya buat file baru lalu tuliskan code yang terdapat dibawah ini.

      <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /nama folder CodeIgniter/
      RewriteCond %{REQUEST_URI} ^system.*
      RewriteRule ^(.*)$ /index.php/$1 [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php/$1 [L]
      </IfModule>

      Pada baris ke-3 sesuaikan nama folder CodeIgniter masing-masing. Disini kami melakukan rename nama folder CodeIgniter menjadi “bayusapp” maka untuk code yang akan disimpan menjadi seperti dibawah ini.

      <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /bayusapp/
      RewriteCond %{REQUEST_URI} ^system.*
      RewriteRule ^(.*)$ /index.php/$1 [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php/$1 [L]
      </IfModule>

      Atau bisa menggunakan code yang lebih singkat seperti berikut

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

      Setelah menuliskan code tersebut lalu simpan code tersebut dengan nama “.htaccess” tanpa tanda kutip. Berikut ini screenshot tempat menyimpan file .htaccess.

    3. Mencoba akses tanpa index.php
      Setelah berhasil menyimpan file .htaccess maka dapat mengakses suatu Function tanpa index.php. Sebagai contoh kami akan mengakses suatu URL dengan penulisan http://localhost/bayusapp/index.php/Admin/Beranda yaitu dengan index.php dan http://localhost/bayusapp/Admin/Beranda tanpa index.php.

      Penulisan URL dengan index.php
      Penulisan URL tanpa index.php

      Pada kedua gambar tersebut menampilkan hasil dari URL masing-masing jika diakses menggunakan dan tidak menggunakan index.php

Demikian langkah-langkah untuk menghilangkan index.php di CodeIgniter. Semoga bermanfaat.