Membuat base URL dinamis pada CodeIgniter

Saat kali pertama membuat aplikasi dengan CodeIgniter, hal pertama yang kita lakukan adalah melakukan konfigurasi base_url. Config ini berguna untuk menciptakan URL yang mengakses resource yang berada pada direktori root aplikasi.

Secara default, konfigurasi base_url pada CodeIgniter versi 3 adalah seperti ini:

$config['base_url'] = '';

Ketika kita ingin membuat sebuah aplikasi misalnya siakad, maka kita perlu mengubah konfigurasi tersebut menjadi:

$config['base_url'] = 'http://localhost/siakad/';

Jika aplikasi di-upload ke hosting, CodeIgniter akan error karena masih mengakses localhost, bukan domain atau IP server yang sebenarnya. Mengubahnya manual setiap kali pindah server tentu merepotkan.

Maka dari itu kita perlu sedikit trik agar base_url tersebut bisa dinamis dan otomatis menyesuaikan domain/ip server tanpa perlu kita ubah secara manual.

Untuk mengatur konfigurasi base_url agar menjadi dinamis, silakan ganti konfigurasi default CodeIgniter:

$config['base_url'] = '';

Ganti dengan konfigurasi di bawah ini:

$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://" . $_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);

Dengan cara di atas kita tidak perlu mengubah konfigurasi base_url secara manual apabila berpindah/ganti domain/ip server yang kita gunakan.