Postingan lainnya
Membuat Dinamic Base URL dan Clean URL pada CodeIgniter 3.X
Di tulisan ini saya akan berbagi cara membuat Base URL yang bersih dan dinamis pada CodeIgniter 3.X.
Berikut penjelasannya:
1.Setting Dinamic Base URL
Secara umum, kita harus membuat base url secara manual seperti contoh:
$config['base_url']=http://localhost/namaproject;
. Namun, dengan Base URL yang dinamis akan memudahkan kita untuk tidak setting secara manual alias otomatis. :) Caranya teman-teman membuka root
application/config/config.php
. Lalu gantilah kode
$config['base_url']
seperti 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']);
Penafsiran dari kode-kode diatas menurut penulis sebagai berikut: 1. Pada kode pertama akan ditanya apakah protokolnya menggunakan http atau https? Jika https maka gunakan https, jika tidak maka gunakan http. 2. Pada kode kedua, hasil dari kode pertama akan ditempelkan dengan jenis host nya seperti https://http_host atau http://http_host. Http_host itu mirip localhost atau host server seperti Apache, Nginx atau LiteSpeed. 3. Pada kode ketiga, hasil dari kode pertama dan kedua akan ditempel pada kode ketiga. Seperti https://http_host/script_name atau http://http_host/script_name.
2. Setting Clean URL
Secara umum, ketika menjalankan program dengan CodeIgniter di browser, maka kita harus mengetik ini di URL kita seperti di bawah ini:
http://localhost/namaproject/index.php/namacontroller/namamethod
. Untuk menghilangkan index.php tersebut, maka kita harus menghilangkan kode yang semula
$config['index_page']='index.php';
menjadi
$config['index_page']='';
Kemudian kita membuat file .htaccess di root project kita (saya harap teman-teman sudah mengenal htaccess dan sudah disediakan di SekolahKoding). Berikut kode .httaccess nya:
<IfModule mod_rewrite.c>
Options -Indexes
RewriteEngine On
RewriteCond $1 !^(index\\.php|resources|robots\\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L,QSA]
</IfModule>
Yap, itulah cara pembuatannya. Jika teman-teman bingung bisa lihat di github saya dan saya sudah mengimplementasikan hasilnya pada repo bernama agenda di github saya serta telah berhasil menghosting nya di <a href='agenda.satyakresna.com'>agenda.satyakresna.com</a>.
Semoga menambah semangat teman-teman dan bermanfaat.
Tanggapan
Kalau untuk setting url berbeda di env production dan development bagaimana? jadi pas deploy otomatis misal menggunakan pipeline bitbucket kita ga harus ngubah2 file config lagi jd versi developemn dan versi production selalu singkron
11 Jawaban:
Sama - sama mas Hilman. Doakan semoga saya mendapat inspirasi membuat tutorial di SekolahKoding!
kalo ane sering pindah-pindah port gimana gan biar otomatis localhost-nya?
@ilhamdsofyan, kalau pindah-pindah port saya belum menemukan solusi yang terbaik. Solusi saat ini disetup manual mas.
Untuk versi NGiNX, ada ga tutornya? Thx before, btw nice tutor... Thumbs Up! b
Hai @nurimansyah, untuk jawabannya bisa dicari di sini ya: http://avenir.ro/codeigniter-tutorials/step-2-set-environments/
Kang, mau tanya kalo settingan base_url ketika project publish ke server bagaimana, soalnya ketika saya setting base_url: http://localhost/namaproject maka akan error ketika ditaro di server
Halo @Mochammad, config di atas otomatis sudah mendeteksi url yg deploy ke production. Trims.
gan, saya kan punya induk domainya misanlya https://sepa.sch.id, nah sekarang saya sudah menambahkan domain: https://ppdb.sepa.sch.id direktori root public_html/ppdb pertanyaan: di file config (CI) seperti ini: $url = "http://". $_SERVER['HTTP_HOST']; $url .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']); $config['base_url'] = $url;
tetapi aksesnya not found, apa yang salah yak...
<div>mantap sangat membantu. ini yang saya cari.</div>