Membuat BaseURL Dinamis Di Codeigniter

Base URL adalah sebuah fungsi yang bisa kita gunakan untuk memanggil alamat utama dari URL tempat link tersebut disimpan, kita dapat mengatur base_url() pada Codeigniter dengan mengisikan alamat URL secara manual pada Codeigniter -> application -> config -> config.php. Sebagai contoh, kita dapat mengatur base_url() dengan pengaturan berikut:

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

Dengan setingan di atas, kita dapat memanggil fungsi base_url() yang apabila kita echo akan mencetak tulisan http://localhost/programku. Fungsi ini bermanfaat ketika kita akan menuliskan URL Absolut dengan hanya menuliskan fungsi base_url() yang ditambah dengan URL relatif.

Contoh:

Link yang akan diakses : http://localhost/programku/data/siswa/detail.php

Penulisan dengan base URL : base_url('data/siswa/detail.php')

Pada contoh di atas, kita menghilangkan alamat http://localhost/programku dan digantikan dengan fungsi base URL. Itu dikarenakan kita telah menyeting nilai base URL dengan alamat/direktori utama web kita tersebut.

Namun permasalahan akan timbul ketika mengubah nama direktori tempat kita bekerja -misal ketika nama awal adalah programku lalu diubah nama menjadi program-, maka base URL akan tetap merujuk pada nama folder lama seperti pada pengaturan sebelumnya karena kita menuliskan base URL secara statis. Untuk untuk kita dapat mengganti nilai base URL dengan metode statis, contoh base URL dinamis adalah seperti pada sintaks di bawah ini:

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

Keterangan sintaks:

((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http") berfungsi untuk mengecek, apakah server menggunakan protok HTTP atau HTTPS.

"://" untuk mencetak tanda ://

$_SERVER['HTTP_HOST'] digunakan untuk menampilkan hostname -Contoh localhost-.

str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']) adalah fungsi yang digunakan untuk mengganti alamat lengkap direktori, dan diganti dengan nama direktorinya saya.

No Sintaks Hasil
1 ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http") http
2 :// ://
3 $_SERVER['HTTP_HOST'] localhost
4 str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']) /programku/

Bila kita mencetak base_url() maka akan menampilkan data http://localhost/programku/. Bila kita mengubah nama folder yang kita miliki dari programku menjadi program, maka secara otomatis tampilan base_url() yang akan tercetak adalah http://localhost/program/, begitu juga bila hostname kita berubah.

Download Catatan