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 である記事の更新を許可するページに導きます。

第二の URL の形式においては、URL に記事のタイトルを含めていることに着目して下さい。
これは主として URL を SEO フレンドリーにするためのものです。検索エンジンは、インデックス作成時に URL に含まれている単語も参照することがあると言われています。

目的を達するためには、[アプリケーション初期構成](http://www.yiiframework.com/doc/guide/ja/basics.application#sec-2) を下記のように修正します。

~~~
[php]
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](http://www.yiiframework.com/doc/guide/ja/topics.url) コンポーネントの構成を変更し、`urlFormat` プロパティを `path` に設定し、一連の `rules` を追加しています。

`urlManager` はこの規則を使用して、私たちが希望する形式の URL を解釈し、かつ、生成します。例えば、第二の規則は、`/index.php/posts/yii` という URL が要求されたときには、`urlManager` がその要求を `post/index` という[ルート (route)](http://www.yiiframework.com/doc/guide/ja/basics.controller#sec-2) に送出し、`yii` という値を持つ `tag` という GET 引数を生成することを述べています。また一方では、`post/index` というルートと `tag` という引数で URL を生成する場合にも、`urlManager` コンポーネントはこの規則を使用して、私たちが希望する `/index.php/posts/yii` という URL を生成します。このような訳ですから、私たちは `urlManager` は双方向の URL マネージャであると言います。

`urlManager` コンポーネントは、URL から `index.php` を見えなくしたり、`.html` のような拡張子を URL に追加したりして、URL の見栄えを更に良くすることが出来ます。これらの機能は、アプリケーション初期構成の中で `urlManager` のさまざまなプロパティを構成することで、簡単に手に入れることが出来ます。詳細については、[ガイド](http://www.yiiframework.com/doc/guide/ja/topics.url) を参照して下さい。

<div class="revision">$Id$</div>