Cara Menghilangkan index.php pada CodeIgniter 3: Panduan Lengkap

 

 

Salah satu tantangan yang sering dihadapi pengembang web saat menggunakan CodeIgniter 3 adalah keberadaan file index.php yang muncul dalam URL aplikasi. Secara default, CodeIgniter menggunakan index.php di dalam URL setiap kali mengakses controller atau halaman web. Meskipun ini tidak mengganggu fungsionalitas aplikasi, banyak pengembang yang lebih memilih untuk menghilangkan index.php agar URL lebih bersih dan ramah SEO.

Pada artikel ini, kita akan membahas cara menghilangkan index.php dari URL di CodeIgniter 3. Langkah-langkah berikut ini mencakup pengaturan di config, .htaccess, serta beberapa pengaturan server agar CodeIgniter dapat berjalan tanpa menampilkan index.php di URL.

Mengapa Harus Menghilangkan index.php?

Sebelum melangkah lebih jauh, penting untuk memahami mengapa banyak pengembang memilih untuk menghilangkan index.php dari URL aplikasi mereka. Beberapa alasan utamanya antara lain:

  1. Estetika dan Keterbacaan URL: URL yang bersih dan mudah dibaca lebih menarik dan lebih mudah diingat oleh pengguna.
  2. SEO: URL yang lebih pendek dan jelas cenderung lebih baik untuk optimasi mesin pencari (SEO). URL yang mengandung index.php dianggap kurang rapi oleh mesin pencari.
  3. Keamanan: Meskipun ini bukan alasan utama, beberapa pengembang beranggapan bahwa menghilangkan index.php dapat sedikit meningkatkan keamanan dengan menyembunyikan struktur aplikasi secara keseluruhan.

Langkah 1: Mengubah Pengaturan pada config.php

Langkah pertama yang perlu dilakukan adalah mengubah pengaturan di file konfigurasi CodeIgniter 3. File ini berada di application/config/config.php. Di dalam file tersebut, Anda akan menemukan pengaturan yang bernama $config['index_page'].

Secara default, pengaturan ini diset dengan nilai index.php, yang menyebabkan URL mengandung index.php. Anda perlu menghapus nilai ini untuk menghilangkan index.php dari URL.

  1. Buka file application/config/config.php.
  2. Cari baris berikut:
    $config['index_page'] = 'index.php';
    
  3. Ubah nilainya menjadi kosong:
    $config['index_page'] = '';
    

Setelah melakukan perubahan ini, CodeIgniter akan mencoba untuk mengakses controller langsung tanpa menambahkan index.php pada URL.

Namun, perubahan ini saja belum cukup. Anda juga perlu melakukan konfigurasi tambahan di server untuk memastikan aplikasi dapat berjalan dengan benar tanpa index.php.

Langkah 2: Mengonfigurasi .htaccess untuk Mod_Rewrite

Langkah berikutnya adalah membuat file .htaccess yang akan mengatur URL agar CodeIgniter dapat menghapus index.php dengan baik. File .htaccess ini menggunakan modul mod_rewrite dari Apache untuk melakukan perubahan pada URL yang diminta oleh pengguna.

  1. Pastikan Anda memiliki akses ke root directory aplikasi CodeIgniter Anda, di mana folder application dan system berada.
  2. Buat file .htaccess di direktori root aplikasi Anda jika file tersebut belum ada.
  3. Salin dan tempelkan kode berikut ke dalam file .htaccess:
    
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php/$1 [L]
    
    
    Penjelasan singkat tentang aturan di atas:
    • RewriteEngine On: Mengaktifkan modul rewrite.
    • RewriteCond %{REQUEST_FILENAME} !-f: Jika file yang diminta tidak ada di server, maka lanjutkan ke aturan berikutnya.
    • RewriteCond %{REQUEST_FILENAME} !-d: Jika direktori yang diminta tidak ada di server, maka lanjutkan ke aturan berikutnya.
    • RewriteRule ^(.*)$ index.php/$1 [L]: Mengarahkan semua permintaan yang tidak cocok dengan file atau direktori yang ada ke file index.php.

File .htaccess ini memastikan bahwa jika ada permintaan URL tanpa index.php, server akan mengarahkan permintaan tersebut ke index.php.

Langkah 3: Memastikan Server Apache Mendukung mod_rewrite

Modul mod_rewrite di Apache adalah komponen penting yang memungkinkan Anda untuk mengubah URL sesuai dengan aturan yang ditetapkan di file .htaccess. Sebagian besar server Apache sudah dilengkapi dengan modul ini secara default, namun jika server Anda belum mengaktifkannya, Anda perlu mengaktifkannya terlebih dahulu.

Untuk memeriksa dan mengaktifkan mod_rewrite di Apache, ikuti langkah-langkah berikut:

  1. Periksa apakah mod_rewrite sudah aktif: Cek dengan menjalankan perintah berikut pada terminal:

    apache2ctl -M | grep rewrite
    

    Jika modul rewrite_module muncul dalam daftar, itu berarti mod_rewrite sudah aktif.

  2. Aktifkan mod_rewrite (jika belum aktif): Jika modul ini belum diaktifkan, Anda dapat mengaktifkannya dengan menjalankan perintah berikut:

    sudo a2enmod rewrite
    sudo systemctl restart apache2
    
  3. Periksa pengaturan AllowOverride: Jika server Anda sudah mengaktifkan mod_rewrite, pastikan pengaturan AllowOverride di Apache sudah diatur untuk memperbolehkan .htaccess berfungsi. Anda bisa melakukannya dengan memeriksa konfigurasi file Apache (misalnya di /etc/apache2/sites-available/000-default.conf) dan pastikan ada baris seperti ini:

    
        AllowOverride All
    
    

    Setelah melakukan perubahan ini, restart Apache untuk menerapkan perubahan:

    sudo systemctl restart apache2
    

Langkah 4: Menggunakan URL yang Benar untuk Asset

Setelah menghilangkan index.php dari URL, pastikan Anda juga memperhatikan URL asset seperti gambar, CSS, dan JavaScript. Secara default, CodeIgniter akan menggunakan URL relatif untuk asset tersebut, yang bisa menjadi masalah setelah Anda menghilangkan index.php.

Untuk mengatasi masalah ini, pastikan Anda menggunakan fungsi base_url() atau site_url() dari CodeIgniter untuk menghasilkan URL yang benar. Contoh:


[removed][removed]

Langkah 5: Mengatasi Masalah dengan base_url()

Pada beberapa server, pengaturan base_url() dalam CodeIgniter bisa mempengaruhi penghapusan index.php. Pastikan pengaturan base_url() sudah sesuai dengan URL aplikasi Anda. Anda bisa mengonfigurasi nilai base_url di file application/config/config.php:

$config['base_url'] = 'http://example.com/';

Langkah 6: Uji Coba dan Debugging

Setelah Anda mengikuti langkah-langkah di atas, langkah terakhir adalah menguji aplikasi Anda untuk memastikan bahwa index.php sudah benar-benar hilang dari URL dan aplikasi berjalan dengan baik. Cobalah untuk mengakses beberapa halaman di aplikasi Anda, baik untuk controller atau asset, dan pastikan URL terlihat bersih tanpa index.php.

Jika Anda menghadapi masalah, pastikan Anda memeriksa:

  • Konfigurasi file .htaccess sudah benar.
  • Mod_rewrite diaktifkan dan pengaturan AllowOverride sudah diatur dengan benar.
  • Pengaturan base_url() sudah benar.

Kesimpulan

Menghilangkan index.php dari URL di CodeIgniter 3 adalah langkah yang bagus untuk membuat aplikasi Anda lebih bersih, rapi, dan ramah SEO. Dengan mengikuti langkah-langkah yang telah dijelaskan, Anda dapat dengan mudah menghapus index.php dari URL dan meningkatkan estetika serta kinerja aplikasi web Anda.

Namun, perlu diingat bahwa menghilangkan index.php membutuhkan beberapa pengaturan di config.php, .htaccess, dan server Apache. Setelah pengaturan yang tepat, aplikasi Anda akan berjalan dengan URL yang lebih bersih dan lebih profesional tanpa mempengaruhi fungsionalitas aplikasi secara keseluruhan.

 

 

Danesh Nadhif

Itaque quidem optio quia voluptatibus dolorem dolor. Modi eum sed possimus accusantium. Quas repellat voluptatem officia numquam sint aspernatur voluptas. Esse et accusantium ut unde voluptas.

8 Comments

Georgia Reader Reply

Et rerum totam nisi. Molestiae vel quam dolorum vel voluptatem et et. Est ad aut sapiente quis molestiae est qui cum soluta. Vero aut rerum vel. Rerum quos laboriosam placeat ex qui. Sint qui facilis et.

Aron Alvarado Reply

Ipsam tempora sequi voluptatem quis sapiente non. Autem itaque eveniet saepe. Officiis illo ut beatae.

Lynda Small Reply

Enim ipsa eum fugiat fuga repellat. Commodi quo quo dicta. Est ullam aspernatur ut vitae quia mollitia id non. Qui ad quas nostrum rerum sed necessitatibus aut est. Eum officiis sed repellat maxime vero nisi natus. Amet nesciunt nesciunt qui illum omnis est et dolor recusandae. Recusandae sit ad aut impedit et. Ipsa labore dolor impedit et natus in porro aut. Magnam qui cum. Illo similique occaecati nihil modi eligendi. Pariatur distinctio labore omnis incidunt et illum. Expedita et dignissimos distinctio laborum minima fugiat. Libero corporis qui. Nam illo odio beatae enim ducimus. Harum reiciendis error dolorum non autem quisquam vero rerum neque.

Sianna Ramsay Reply

Et dignissimos impedit nulla et quo distinctio ex nemo. Omnis quia dolores cupiditate et. Ut unde qui eligendi sapiente omnis ullam. Placeat porro est commodi est officiis voluptas repellat quisquam possimus. Perferendis id consectetur necessitatibus.

Nolan Davidson Reply

Distinctio nesciunt rerum reprehenderit sed. Iste omnis eius repellendus quia nihil ut accusantium tempore. Nesciunt expedita id dolor exercitationem aspernatur aut quam ut. Voluptatem est accusamus iste at. Non aut et et esse qui sit modi neque. Exercitationem et eos aspernatur. Ea est consequuntur officia beatae ea aut eos soluta. Non qui dolorum voluptatibus et optio veniam. Quam officia sit nostrum dolorem.

Kay Duggan Reply

Dolorem atque aut. Omnis doloremque blanditiis quia eum porro quis ut velit tempore. Cumque sed quia ut maxime. Est ad aut cum. Ut exercitationem non in fugiat.

Leave a Reply

Your email address will not be published. Required fields are marked *