Tutorial Memindahkan File index.php dari folder public pada CodeIgniter 4

Pada defaultnya, pada struktur file CodeIgniter4 bahwasanya menempatkan file index.php pada folder public, berbeda dengan versi sebelumnya yakni CodeIgniter3, file index.php berada pada root folder awalan framework.

Ada alasannya penempatan file pada folder public. Ini untuk memastikan bahwa tidak ada permintaan yang memiliki akses ke file PHP apa pun secara langsung (selain index.php). Jadi ini adalah solusi yang aman, dengan mengkonfigurasi server web untuk menggunakan folder public sebagai root dokumen (seperti yang dimaksudkan).

Dan untuk defaultnya cara menjalankan project aplikasi dengan CodeIgniter4 untuk local development mode, bisa dengan cara buka terminal atau command line

cd webci4 <sesuaikan nama folder codeigniter 4 kalian>
php spark serve

  Screenshot 2024-04-08 023058.png  

Dan akses web nya 

Screenshot 2024-04-08 0232132.png

Atau bisa cek disini untuk running app, dari Dokumentasi CodeIgniter4 nya :

https://codeigniter.com/user_guide/installation/running.html 

Nah sekarang bagaimana untuk akses project codeigniter 4 ini tanpa cli, dan tidak konfigurasi lebih pada server ketika hosting agar lebih mudah ?, Pada tutorial ini kita akan mencoba secara alternative bagaimana meremove penggunaan folder public pada CodeIgniter4

  1. Create Folder ci4-app dan pindahkan file CodeIgniter4 folder 
    Buatlah folder dengan nama ci4-app lalu pindahkan semua File CodeIgniter4 kedalam folder ci4-app

    Screenshot 2024-04-08 0237203.png
    Menjadi seperti ini
      Screenshot 2024-04-08 0240014.png  

  2. Pindahkan isi file folder public bawaan CodeIgniter 4
    Pada tahap ini pindahkan semua file folder public ke luar root inti folder, disini posisinya bersebelahan dengan folder ci4-app yang kita buat

    Screenshot 2024-04-08 0242206.png  


  3. Ubah File index.php
    Buka folder project dengan text editor yang kalian pakai dan ubah alur path folder pada file index.php
    require FCPATH . '../app/Config/Paths.php';

    Diubah menjadi kearah folder ci4-app yang telah dibuat

    require FCPATH . 'ci4-app/app/Config/Paths.php';
     
  4. Edit .htaccess
    Untuk pengguna laragon ataupun linux server, bisa ditambahkan script untuk RewriteRule agar dapat diakses
    RewriteRule ^([\s\S]*)$ index.php/$1 [L,NC,QSA]​

    Menjadi ditambahkan ? setelah index.php

    RewriteRule ^([\s\S]*)$ index.php?/$1 [L,NC,QSA]

     

  5. Dinamiskan Base URL 
    Disini kita akan mendinamiskan fungsi base url untuk mengakses project web nya :
    Buka file App/Config/Constants.php untuk membuat fungsi define dan taruh dibagian bawah script :
    /** BASE URL DYNAMIC */
    $baseURL = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
    $baseURL .= "://".$_SERVER['HTTP_HOST'];
    $baseURL .= preg_replace('@/+$@','',dirname($_SERVER['SCRIPT_NAME'])).'/';
    
    define('BASE_URL_CUSTOM', $baseURL);

    Lalu setelah ditambahkan kamu dapat Buka file App/Config/App.php untuk merubah base url bawaan, dan cari  :

    public string $baseURL = 'http://localhost:8080/';

    Ubah menjadi 

    public string $baseURL = BASE_URL_CUSTOM;​

    Dan bisa remove juga pada fungsi indexPage yang berisi string index.php agar url menjadi lebih clean

     public string $indexPage = '';

     

  6. Testing Akses Link
    Setelah selesai semua di konfigurasi, kamu dapat coba langsung akses urlnya, seperti biasa kalau anda akses di xampp, laragon atau webserver lainnya bisa langsung link ke folder tertuju
    http://localhost/webci4/​

    Lalu akses web kamu :

    Screenshot 2024-04-08 0301467.png  
    Jika server hosting dan lain sebagainya, tinggal upload file CodeIgniter4 yang sudah di konfigurasi ini pada public_html jika cpanel atau shared hosting atau LAMP Stack pada folder yang sudah diatur / konfigurasi, dan bisa langsung akses url yang dituju, karena url sudah dinamis, anda tidak perlu setting url domain lagi pada Base URL CodeIgniter4

  7.  Selesai

Akhir Kata
Pembahasan ini sebatas sharing atau berbagi cara saya untuk lebih simple akses link seperti biasanya, dan jika ada saran atau pendapat lain bisa tulis di kolom komentar, Demikian artikel kali ini semoga bermanfaat Terima kasih.

 

Komentar