Yii 2 - Friendly URL

alfa6661
- August 06, 2015
0 (0 votes)
Rate :
Cara membuat SEO Friendly URL pada Yii Framework 2

Secara default URL yang menghubungkan berbagai halaman pada aplikasi yii kurang enak untuk dilihat / tidak ramah pengguna. Contoh, untuk halaman login, URL yang ditampilkan adalah http://lab-informatika.com/index.php?r=site%2Flogin. URL seperti itu juga tidak akan disukai oleh search engine / tidak SEO friendly

Oleh karena itu, Yii Framework dirancang agar dapat mengubah URL-nya menjadi lebih SEO friendly, hal ini sangat mudah untuk dilakukan, kita hanya perlu menambahkan kelas UrlManager di pengaturan aplikasi.

Contoh:

'components' => [
	'urlManager' => [
		'enablePrettyUrl' => true
	]
]

Dengan menambahkan pengaturan diatas, url kita sudah terlihat lebih baik dari sebelumnya. http://lab-informatika.com/index.php/site/login. Akan tetapi dengan URL tersebut rasanya masih terlihat kurang baik jika kita tidak menghilangkan bagian index.php dari URL.  Untuk menambahkannya kita perlu menambahkan satu baris kode lagi pada bagian pengaturan urlManager dan pengaturan apache melalui file .htaccess.

Untuk menghilangkan index.php pada URL, tambahkan kode showScriptName pada pengaturan urlManager dan atur dengan nilai false.

'components' => [
	'urlManager' => [
		'enablePrettyUrl' => true,
		'showScriptName' => false
	]
]

Selanjutnya kita perlu mengkonfigurasi apache agar bisa menampilkan halaman tanpa index.php. Dokumentasi Yii2 memiliki halaman tentang konfigurasi pada Shared Hosting yang menyediakan contoh bagaimana kita dapat mengkonfigurasi Apache untuk URL SEO friendly menggunakan file .htaccess.

Buat 1 file dengan nama .htaccess di folder web dimana file index.php berada, dan isi dengan kode ini:

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php

Pengaturan untuk URL sudah selesai, sekarang kita bisa mengakses halaman login dengan URL http://lab-informatika.com/site/login. Kita juga bisa membuat URL dengan menghilangkan nama controller pada URL, misalnya kita bisa membuat URL untuk halaman login seperti ini: http://lab-informatika.com/loginHal ini juga sangat mudah untuk dilakukan, kita hanya perlu menambahkan rule (aturan) pada url manager. 

Contoh:

'components' => [
	'urlManager' => [
		'enablePrettyUrl' => true,
		'showScriptName' => false,
		'rules' => [
		   	'login' => 'site/login'
		],
	]
]

Dengan menambahkan rules diatas, sekarang kita bisa mengakses halaman login dengan URL http://lab-informatika.com/login. Pada controller site terdapat beberapa action (login, contact, index, about, dll). Misalnya kita akan membuat URL untuk controller site agar terlihat seperti ini:

Action URL
index http://www.lab-informatika.com
contact http://www.lab-informatika.com/contact
login http://www.lab-informatika.com/login
about http://www.lab-informatika.com/site/about

Kita dapat mengatur URL untuk halaman contact dan login dalam satu baris rule, karena memiliki kesamaan aturan. Untuk membuat URL seperti pada table diatas kita bisa menggunakan rule seperti ini:

'components' => [
	'urlManager' => [
		'enablePrettyUrl' => true,
		'showScriptName' => false,
		'rules' => [
			'' => 'site/index',
			'<_a:(contact|login)>' => 'site/<_a>'
		],
	]
]

untuk action about, kita tidak perlu menambahkan pada bagian rules, karena tidak ada pengaturan url spesifik.

Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter

– Eric S. Raymond

Have a better explanation?

If you have comments about this post. Please write your comments below

No comments associated with this article