啟用 pretty URLs(Enable pretty URLs)
有時候我們會希望透過社群網站來分享網址。不過,舉例來說,網址可能會長得像http://webproject.ru/index.php?r=site%2Fabout
。假設這個網址出現在臉書頁面,我們會想點擊嗎?多數使用者並不知道index.php
和%2F
是什麼,所以他們不大信任這類網址。這讓他們比較不願意點擊網址,網站就損失了流量。
像是http://webproject.ru/about
這樣的網址就比較好。每個使用者都可以理解,這網址會導向該網站的相關資料(about page)。
要達成這個目的,我們來啟用Yii專案的 pretty URLs 工具。
1. Apache 伺服器設置
如果你正在使用 Apache 伺服器,你會需要多一個設定步驟。
在網頁根目錄或者設定檔資料夾的.htaccess
檔案裡面,加入以下內容:
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
2. URL manager 設置
在 Yii config檔案裡面設置urlManager
如下:
'components' => [
// ...
'urlManager' => [
'class' => 'yii\web\UrlManager',
// Hide index.php
'showScriptName' => false,
// Use pretty URLs
'enablePrettyUrl' => true,
'rules' => [
],
],
// ...
],
2.1. 從網址中移除 site 參數
經過前面的步驟之後,你的網址會類似http://webproject.ru/site/about
。這邊site
參數對使用者沒有意義。所以我們可以透過urlManager
規則把這個參數移除:
'rules' => [
'<alias:\w+>' => 'site/<alias>',
],
之後,你的網址就會變成 http://webproject.ru/about
。