今のところ、ブログアプリケーションの様々なページをリンクしている URL は見栄えの悪いものです。 例えば、投稿を表示するページの URL は以下のようになっています:
/index.php?r=post/show&id=1&title=A+Test+Post
このセクションでは、これらの URL を見栄えの良い SEO フレンドリーなものにする方法を説明します。 目的は、アプリケーションで以下のような URL を使うことが出来るようにすることです:
/index.php/posts/yii
: yii
というタグを持つ記事の一覧を表示するページに導きます。/index.php/post/2/A+Test+Post
: ID が 2 であり、タイトルが A Test Post
である記事の詳細を表示するページに導きます。/index.php/post/update?id=1
: ID が 1 である記事の更新を許可するページに導きます。第二の URL の形式においては、URL に記事のタイトルを含めていることに着目して下さい。 これは主として URL を SEO フレンドリーにするためのものです。検索エンジンは、インデックス作成時に URL に含まれている単語も参照することがあると言われています。
目的を達するためには、アプリケーション初期構成 を下記のように修正します。
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
はこの規則を使用して、私たちが希望する形式の URL を解釈し、かつ、生成します。例えば、第二の規則は、/index.php/posts/yii
という URL が要求されたときには、urlManager
がその要求を post/index
というルート (route) に送出し、yii
という値を持つ tag
という GET 引数を生成することを述べています。また一方では、post/index
というルートと tag
という引数で URL を生成する場合にも、urlManager
コンポーネントはこの規則を使用して、私たちが希望する /index.php/posts/yii
という URL を生成します。このような訳ですから、私たちは urlManager
は双方向の URL マネージャであると言います。
urlManager
コンポーネントは、URL から index.php
を見えなくしたり、.html
のような拡張子を URL に追加したりして、URL の見栄えを更に良くすることが出来ます。これらの機能は、アプリケーション初期構成の中で urlManager
のさまざまなプロパティを構成することで、簡単に手に入れることが出来ます。詳細については、ガイド を参照して下さい。
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.