Вы находитесь на странице: 1из 3

Mempercantik url dan konfigurasi router pada codeigniter

1. Konfigurasi Router
Sebelum mengkonfigurasi router, mungkin ada beberapa dari adiks yang
bertanya mengenai apasih router itu?. Nah di codeigniter router dapat
diartikan sebagai map yang mengatur url-url yang ada di website kita. Contohnya
pada saat kita mengakses http://localhost/codeigniter/index.php/welcome/index.
Bagian Merah: Berfungsi sebagai base_url.
Bagian Pink: Berfungsi sebagai entry point website kita.
Bagian Biru: Adalah nama controller kita.
Bagian Orange: Adalah nama fungsi/method yang berada di dalam controller
welcome.
Pertama-tama, mari kita buka file routes.php yang terletak di dalam
folder application/config/.
1 <?php
2 defined('BASEPATH') OR exit('No direct script access allowed');
3
4 $route['default_controller'] = 'welcome';
5 $route['404_override'] = '';
6 $route['translate_uri_dashes'] = FALSE;
Dapat kita lihat diatas, pada bagian $route[‘default_controller’] =
‘welcome’ berarti bahwa pada saat kita mengakses http://localhost/codeigniter,
maka secara default kita akan langsung diarahkan ke controller Welcome dan
fungsi default yang akan dipanggil adalah index(). Bagaimana jika tidak ada
fungsi atau method yang bernama index() di dalam controller kita atau kita ingin
mengarahkan ke fungsi yang lain di dalam controller Welcome?. Caranya mudah
saja, kita bisa memberitahu si router tadi bahwa default controller kita
adalah welcome/nama_fungsi_yang_akan_dipanggil, misalnya nama fungsi kita
adalah home() maka bisa dituliskan seperti di bawah ini.
1 <?php
2 defined('BASEPATH') OR exit('No direct script access allowed');
3
4 $route['default_controller'] = 'welcome/home';
5 $route['404_override'] = '';
6 $route['translate_uri_dashes'] = FALSE;

2. Membuat Controller Baru


Sekarang, mari kita membuat controller baru di dalam
folder application/controllers/ yang kita beri nama Dashboard.php dan
mengarahkan route default_controller ke controller Dashboard tadi.
1 <?php defined('BASEPATH') OR exit('No direct script access allowed');
2
3 class Dashboard extends CI_Controller {
4
5 public function index()
6 {
7 echo '<h1>Ini fungsi index dari controller dashboard</h1>';
8 }
9}
Selanjutnya, kita rubah file routes.php kita seperti di bawah ini.
1 <?php
2 defined('BASEPATH') OR exit('No direct script access allowed');
3
4 $route['default_controller'] = 'dashboard';
5 $route['404_override'] = '';
6 $route['translate_uri_dashes'] = FALSE;
Jika berhasil, maka pada saat kita mengakses website kita
di http://localhost/codeigniter maka kita akan langsung di arahkan ke
controller Dashboard dan fungsi index() akan ditampilkan.

3. Menghilangkan index.php dari url


Untuk memanggil controller tertentu di codeigniter biasanya kita membuka
browser dan
mengetikkan http://localhost/codeigniter/index.php/nama_controller/nama_fungsi.
Bagaima jika kita ingin mengakses controller kita tanpa harus mengetikkan
index.php sehingga kita bisa lebih cepat mengakses halaman yang dituju?. Nah,
caranya dengan melakukan sedikit konfigurasi pada file config.php yang berada
di dalam folder application/config/ dan menambahkan file .htaccess di folder root
codeigniter kita.
Pertama pada file config.php baris ke 38.
1 $config['index_page'] = 'index.php';
menjadi,
1 $config['index_page'] = '';
Kemudian kita membuat file baru di folder root codeigniter yang kita beri
nama .htaccess kemudian ketikkan kode berikut:
1 Options +FollowSymLinks
2 Options -Indexes
3 DirectoryIndex index.php
4 RewriteEngine on
5 RewriteCond $1 !^(index\.php|images|robots\.txt)
6 RewriteCond %{REQUEST_FILENAME} !-f
7 RewriteCond %{REQUEST_FILENAME} !-d
8 RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Nah sekarang kita sudah bisa mengakses halaman kita
seperti http://localhost/codeigniter/dashboard/index tanpa mengetikkan index.php
lagi.
4. Membuat URL menjadi SEO Friendly
Kebanyakan search engine, menyukai url yang memiliki karakter ‘-‘ sebagai
pengganti spasi atau pemisah kata. Di php kita tidak bisa membuat nama
fungsi/method yang mengandung karakter ‘-‘. Sebaliknya karakter yang kita
gunakan sebagai pemisah kata atau spasi adalah karakter ‘_’.
Jadi misalnya kita mempunyai fungsi baru di controller Dashboard yang
bernama routing_ka_ayah().
1 <?php defined('BASEPATH') OR exit('No direct script access allowed');
2
3 class Dashboard extends CI_Controller {
4
5 public function index()
6 {
7 echo '<h1>Ini fungsi index dari controller dashboard</h1>';
8 }
9
10 public function routing_ka_ayah()
11 {
12 echo 'Hahaha';
13 }
14 }
Maka kita harus mengaksesnya seperti
ini http://localhost/codeigniter/dashboard/routing_ka_ayah/. Untuk
membuatnya seo friendly, kita harus kembali ke file routes.php dan melakukan
sedikit konfigurasi pada pengaturan $route[‘translate_uri_dashes’] = FALSE kita
rubah menjadi TRUE.
1 $route['translate_uri_dashes'] = TRUE;
Sekarang kita bisa mengakses
fungsi routing_ka_ayah() seperti ini http://localhost/codeigniter/dashboard/routing-
ka-ayah/ yang akan membuat halaman kita mudah terindeks oleh search engine.

Вам также может понравиться