0 フォロワー

URLの美化

ブログアプリケーションのさまざまなページにリンクするURLは、現在、見栄えが悪いです。たとえば、投稿を表示するページのURLは次のようになります。

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

このセクションでは、これらのURLを美化してSEOフレンドリーにする方法について説明します。私たちの目標は、アプリケーションで次のURLを使用できるようにすることです。

  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の投稿の更新を許可するページにつながります。

2番目の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を解析および作成するために使用されます。たとえば、2番目のルールは、URL/index.php/posts/yiiがリクエストされた場合、urlManagerコンポーネントがリクエストをルートpost/indexにディスパッチし、値がyiitagGETパラメータを生成する必要があることを示しています。一方、ルートpost/indexとパラメータtagでURLを作成する場合、urlManagerコンポーネントもこのルールを使用して、目的のURL/index.php/posts/yiiを生成します。このため、urlManagerは双方向のURLマネージャーであると言います。

urlManagerコンポーネントは、URL内のindex.phpを非表示にしたり、URLに.htmlのようなサフィックスを追加するなど、URLをさらに美化できます。アプリケーション構成でurlManagerのさまざまなプロパティを設定することで、これらの機能を簡単に取得できます。詳細については、ガイドを参照してください。

誤字脱字を見つけましたか、またはこのページを改善する必要があると思いますか?
githubで編集 !