Tutorial ini akan memandu Anda dalam menghilangkan index.php dari URL CodeIgniter, sehingga URL Anda terlihat lebih bersih dan profesional.
Contoh:
- URL sebelum:
http://localhost/nama_proyek/index.php/blog - URL setelah:
http://localhost/nama_proyek/blog
Langkah 1: Mengatur Konfigurasi CodeIgniter
Pertama, kita perlu mengubah beberapa pengaturan di file konfigurasi CodeIgniter.
Buka file application/config/config.php. Cari baris berikut dan ubah isinya seperti di bawah ini:
// Hapus index.php dari URL
$config['index_page'] = '';
Secara default, baris tersebut berisi 'index.php'. Dengan mengubahnya menjadi kosong (''), kita memberi tahu CodeIgniter untuk tidak lagi menyertakan index.php di URL secara otomatis.
Langkah 2: Membuat File .htaccess
Langkah selanjutnya adalah membuat file .htaccess di root direktori proyek Anda. File ini akan bertanggung jawab untuk mengarahkan semua permintaan web ke CodeIgniter tanpa melalui index.php.
Buat sebuah file baru bernama .htaccess di direktori yang sama dengan folder application dan system.
Isi file .htaccess dengan kode berikut:
# Jika Anda menempatkan proyek di root server (misalnya, di dalam htdocs)
# RewriteEngine on
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^(.*)$ index.php/$1 [L]
Penting: Jika Anda menempatkan proyek di sub-direktori (misalnya, http://localhost/nama_proyek/), Anda perlu menambahkan RewriteBase.
# Jika Anda menempatkan proyek di sub-direktori (misalnya, nama_proyek)
# Ganti /nama_proyek/ dengan nama folder proyek Anda
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /nama_proyek/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
Penjelasan Kode .htaccess
RewriteEngine On: Baris ini mengaktifkan mesin rewrite Apache.RewriteBase /nama_proyek/: Baris ini memberi tahu Apache di mana root proyek Anda berada. Pastikan Anda mengganti/nama_proyek/dengan nama folder proyek Anda.RewriteCond %{REQUEST_FILENAME} !-f: Baris ini memastikan bahwa rewrite rule tidak dijalankan jika permintaan adalah untuk file yang benar-benar ada.RewriteCond %{REQUEST_FILENAME} !-d: Baris ini memastikan bahwa rewrite rule tidak dijalankan jika permintaan adalah untuk direktori yang benar-benar ada.RewriteRule ^(.*)$ index.php/$1 [L]: Baris ini adalah aturan utamanya. Ini mengarahkan semua permintaan (^(.*)$) ke fileindex.php, dengan menyertakan sisanya sebagai parameter ($1). Parameter[L]berarti ini adalah aturan terakhir.
Langkah 3: Mengaktifkan mod_rewrite pada Apache
Agar file .htaccess berfungsi, modul mod_rewrite harus diaktifkan pada server Apache Anda.
- Pada XAMPP/WAMP: Buka file
httpd.conf(biasanya diC:\xampp\apache\conf\httpd.conf). - Cari baris berikut dan hapus tanda
#di depannya:Apache#LoadModule rewrite_module modules/mod_rewrite.so - Pastikan baris tersebut menjadi:
Apache
LoadModule rewrite_module modules/mod_rewrite.so - Setelah itu, restart server Apache Anda.
Selesai!
Sekarang Anda dapat mengakses URL seperti http://localhost/nama_proyek/blog dan itu akan berfungsi seperti sebelumnya. URL Anda sekarang terlihat jauh lebih bersih dan ramah untuk dibagikan. Pastikan untuk menyesuaikan file .htaccess sesuai dengan lokasi proyek Anda.