Tutorial Code Igniter : Membuat Friendly URL di CodeIgniter
Secara default, URL di CodeIgniter didesain untuk “search-engine and human friendly“. Daripada menggunakan “query string” standar untuk URL pendekatan yang identik dengan sistem dinamis, CodeIgniter menggunakan pendekatan berbasis segmen
Bagaimana bentuk standar dari query String ?? Sebagai contoh misalkan kita membuat 1 Halaman :
citstudio.com/buku.php?mode=search&nama=konsultan+it&lokasi=bandung
Dengan URL bentuk diatas, sah-sah saja jika penggunaan nya didalam lingkup aplikasi “SISTEM INFORMASI MANAJEMEN” BUT kurang disarankan untuk sebuah aplikasi website apalagi dengan tujuan dikenal oleh berbagai mesin pencari (google, yahoo, bing, dll). Berbeda dengan halnya URL yang dimiliki oleh salah satu CMS (:misalkan wordpress) yang menggunakan bentuk URL seperti ini :
citstudio.com/articles/tutorial-code-igniter-membuat-friendly-url-di-codeigniter/
dengan bentuk diatas tentu akan lebih memudahkan orang menghapal dan memudahkan mesin pencari untuk mengindex, so ? masuk akal jika website yang memiliki bentuk URL seperti ini akan lebih disenangi ^_^
Bagaimana dengan CodeIgniter ?? Umumnya CI memiliki Segmentasi URL dengan bentuk seperti ini :
citstudio.com/index.php/class/function/ID
Dimana class adalah Controller, function merupakan method, ID merupakan variable atau nilai dari variable URL. OK, dalam artikel sekarang kita akan bahas 3 Point mengenai URL di CI.
- Menghilangkan Index.php
- Menambahkan ekstension diakhir URL
- Membentuk URL seperti WordPress, Dalam hal ini kita coba sembunyikan function didalam class (controller)
Menghilangkan Index.php URL CodeIgniter
Untuk menghilangkan index.php pada CodeIgniter, cukup mudah, kita cukup membuat satu file .htaccess, dan simpan di root aplikasi kita. Catatan : ini merupakan .htaccess standar untuk konfigurasi CI.
RewriteEngine on
RewriteCond $1 !^(index.php|images|resource|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
Menambahkan ekstension diakhir URL
Untuk menambahkan extension pada halaman web kita, kita lakukan penambahan script pada file /application/config/config.php
$config['url_suffix'] = '.html';
dengan menambahkan .html maka URL yang akan terbuat :
citstudio.com/articles/slug/tutorial-code-igniter-membuat-friendly-url-di-codeigniter
MENJADI
citstudio.com/articles/slug/tutorial-code-igniter-membuat-friendly-url-di-codeigniter.html
CI memberikan kita kebebasa dalam menambahkan Ekstension, kita bisa saja mengelabui User dengan memberikan akhiran .jsp, .aspx, .js, atau mau nama kita sendiri ???
Membentuk URL seperti WordPress
Sedikit meningkat dari 2 poin diatas. Jika kita melihat pada URL yang dimiliki wordpress saat ini, kita hanya mampu memperkirakan nama halaman yang diakses kemudian slug dari artikel atau id dari artikel, nama_halaman pada CI, kita definisikan sebagai controller sementara kita tak melihat adanya function. Benarkan ?
Bagaimana function tersebut disembunyikan ? OK, kita disini akan membuat URL sebagai berikut :
citstudio.com/articles/tutorial-code-igniter-membuat-friendly-url-di-codeigniter.html
1. SCRIPT AWAL
/application/config/routes.php
$route['default_controller'] = "home"; $route['404_override'] = '';
/application/views/view_home.php
<a href="<?php echo site_url("articles/slug/tutorial-code-igniter-membuat-friendly-url-di-codeigniter"); ?>">ARTIKEL URL CI</a>
keterangan :
articles : Nama Controller atau Class
slug : Nama Function
/application/controllers/home.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends CI_Controller {
function __construct(){
parent::__construct();
}
public function index(){
$this->load->view('view_home');
}
}
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Articles extends CI_Controller {
function __construct(){
parent::__construct();
}
public function index(){}
public function slug(){
$slug = $this->uri->segment(2);
echo $slug;
}
}
/* End of file member.php */
/* Location: ./application/controllers/member.php */
Dengan Konfigurasi diatas URL yang akan terbentuk saat kita meng-klik LINK pada VIEW :
citstudio.com/articles/slug/tutorial-code-igniter-membuat-friendly-url-di-codeigniter.html
Bagaimana cara menghilangkan Segmen SLUG ???
2. SCRIPT AKHIR
/application/config/routes.php
/* tambahkan */ $route['articles/(:any)'] = "articles/slug";
Dengan menambahkan konfigurasi diatas, saat kita baca segmen dengan script
public function slug(){
$slug = $this->uri->segment(2);
echo $slug;
}
Maka yang akan terbaca adalah segmen terakhir dari URL tersebut (“tutorial-code-igniter-membuat-friendly-url-di-codeigniter”) dan membetuk URL seperti :
citstudio.com/articles/tutorial-code-igniter-membuat-friendly-url-di-codeigniter.html
HAPPY CODING ![]()

Comments
Powered by Facebook Comments
Terima kasih tutorialnya :p