Membuat base URL dinamis pada CodeIgniter

Gambar ilustrasi

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/';

Apa yang terjadi bila aplikasi tersebut kita upload pada hosting/server?

Error!, ya error. Hal ini disebabkan karena CodeIgniter mengakses localhost yang harusnya mengakses domain atau ip server hosting.

Untuk mengatasi ini kita perlu mengatur ulang base_url tersebut sesuai domain/ip server yang kita gunakan.

Hal ini sedikit merepotkan bukan?

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.