啟用 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

results matching ""

    No results matching ""