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 https://www.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. Pada artikel ini kita akan membahas langkah-langkah untuk membuat Friendly URL di Yii 2 Framework.
Contoh:
'components' => [
'urlManager' => [
'enablePrettyUrl' => true
]
]
Dengan menambahkan pengaturan diatas, url kita sudah terlihat lebih baik dari sebelumnya. https://www.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 https://www.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: https://www.lab-informatika.com/login. Hal 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 https://www.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 | https://www.lab-informatika.com |
contact | https://www.lab-informatika.com/contact |
login | https://www.lab-informatika.com/login |
about | https://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.
No Comments
Leave a comment Cancel