0 追蹤者

美化網址

目前連結我們部落格應用程式各個頁面的網址看起來很醜陋。例如,顯示文章頁面的網址看起來像這樣

/index.php?r=post/show&id=1&title=A+Test+Post

在本節中,我們將說明如何美化這些網址,使其更符合 SEO 規範。我們的目標是在應用程式中使用以下網址

  1. /index.php/posts/yii:導向顯示標籤為 yii 的文章列表頁面;
  2. /index.php/post/2/A+Test+Post:導向顯示 ID 為 2,標題為 A Test Post 的文章詳細資訊頁面;
  3. /index.php/post/update?id=1:導向允許更新 ID 為 1 的文章頁面。

請注意,在第二種網址格式中,我們將文章標題包含在網址中。這主要是為了使網址更符合 SEO 規範。據說搜尋引擎在建立索引時,也可能會參考網址中找到的文字。

為了實現我們的目標,我們將 應用程式配置 修改如下:

return array(
    ......
    'components'=>array(
        ......
        'urlManager'=>array(
            'urlFormat'=>'path',
            'rules'=>array(
                'post/<id:\d+>/<title:.*?>'=>'post/view',
                'posts/<tag:.*?>'=>'post/index',
                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
        ),
    ),
);

在上述配置中,我們配置了 urlManager 元件,將其 urlFormat 屬性設定為 path,並加入一組 rules

這些規則供 urlManager 用於解析和建立所需格式的網址。例如,第二條規則表示,如果請求網址 /index.php/posts/yii,則 urlManager 元件應負責將請求分派到 路由 post/index,並產生一個值為 yiitag GET 參數。另一方面,當使用路由 post/index 和參數 tag 建立網址時,urlManager 元件也會使用此規則來產生所需的網址 /index.php/posts/yii。因此,我們說 urlManager 是一個雙向網址管理器。

urlManager 元件可以進一步美化我們的網址,例如在網址中隱藏 index.php,在網址中附加諸如 .html 之類的後綴。我們可以透過在應用程式配置中配置 urlManager 的各種屬性來輕鬆獲得這些功能。如需更多詳細資訊,請參閱 指南

發現錯字或您認為此頁面需要改進嗎?
在 github 上編輯 !