Membuat base URL dinamis pada CodeIgniter

Gambar ilustrasi

Saat pertama kali 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.

Secara default konfigurasi base_url 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/ip server hosting.

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

Hal ini agak 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'] = '';

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.