Teknik Mempercantik URL di CodeIgniter

URL(Uniform Resource Locator) di CodeIgniter didesain dengan tipe segmentasi, berbeda dengan URL ‘query string’
standar. Tentunya, ini sangat menguntungkan, karena lebih user friendly dan juga disukai search engine. Secara
default, jika kita membuat aplikasi CodeIgniter, URL kita akan mengandung ‘index.php’, ‘controller’, ‘method’, dan
parameter-parameter tambahan. URL Helper dan URI Class telah disediakan untuk memudahkan kita dalam bekerja
dengan URL. Dengan sedikit manipulasi tambahan, yakni dengan apache mod rewrite dan uri routing feature, kita
dapat lebih mempercantik URL kita.
Dengan Apache mod rewrite, kita dapat menghilangkan ‘index.php’ dari URL kita. Hilang disini hanya bersifat
abstrak, artinya file index.php dalam root aplikasi tetap diperlukan. Oke, langsung saja, saya akan berikan langkahlangkah
praktisnya.
Langkah 1

Buka text editor kesukaan Anda, copy paste kode berikut.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
Ganti baris kedua dengan nama folder tempat menyimpan aplikasi CI JIKA Anda menyimpan aplikasi CI TIDAK di
root server. Misal aplikasi Anda beralamat http://example.com/myblog maka baris kedua menjadi RewriteBase
/myblog.
Simpan file ini dengan nama .htaccess dan tempatkan di root aplikasi, tempat index.php berada.
Langkah 2
Buka system/application/config.php dan ubahlah baris
$config['index_page'] = "index.php";
dengan
$config['index_page'] = "";
Oke. Tes aplikasi Anda, coba beberapa URL untuk memastikan apakah berhasil atau tidak (mungkin Anda perlu
menunggu/mencoba beberapa kali, terkadang respon server lambat). Jika belum berhasil, coba modifikasi (masih
file config.php) baris
$config['uri_protocol'] = "AUTO";
dengan
$config['uri_protocol'] = "REQUEST_URI";
Coba lagi URL Anda, pastikan semua bekerja dengan baik. Mungkin ada beberapa URL yang tidak bekerja. Jika ini
terjadi, modifikasi (masih file config.php) baris
$config['rewrite_short_tags'] = FALSE;
dengan
$config['rewrite_short_tags'] = TRUE;
Oke. Kita sudah selesai. Selanjutnya, kita akan bahas teknik uri routing di CodeIgniter.
Pada prinsipnya, teknik URI routing adalah mendefinisikan arah lari URL ke tempat yang kita mau. Contoh
sederhana, misalkan kita ingin agar URL http://example.com/about menuju controller utama dan method aboutme,
maka kita tambahkan array dalam file system/application/routes.php

$route['about'] = "utama/aboutme";
// format : $route['url_sebenarnya'] = "arah_controller/fungsi";
Jika kita ingin passing parameter segmen, gunakan wildcards. Misal kita ingin agar URL
http://example.com/view/123 menuju ke controller artikel dan method detail serta memberikan parameter ’123′ ke
method , kita tambahkan di routes.php
$route['view/(:num)'] = "artikel/detail/$1";
Jika Anda menggunakan parameter non angka, ganti :num dengan :any. PERHATIAN : route setting diatas berlaku
‘tepat satu’, artinya, misal kita coba alamat http://example.com/view/123/456, maka kita akan mendapatkan
halaman ‘not found’. Untuk kasus ini, kita perlu menambahkan segmen ketiga,
$route['view/(:num)/(:num)'] = "artikel/detail/$1/$2";
Tanda dolar diikuti angka menunjukkan urutan dari kiri, artinya, (:num) pertama masuk ke segmen ke-3 dan (:num)
kedua masuk segmen ke-4. Meskipun demikian, untuk menangkap parameter segmen, kita tetap membaca urutan
berdasar key setting route (view/(:num)/(:num)), jadi, parameter pertama dibaca dengan $this->uri->segment(2) dan
parameter kedua dengan $this->uri->segment(3).
OK, kita selesai. Dengan beberapa teknik sederhana diatas, kita akan mendapatkan URL yang lebih cantik dan
elegan. Jika menemui kesulitan, feel free to comment, OK?
Load disqus comments

0 komentar