Людинозрозумілі 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. 
Зроблено це перш за все для SEO. 
Вважається, що пошукові машини можуть індексувати слова в URL.

Для досягнення нашої мети, змінимо
[конфігурацію додатка](/doc/guide/uk/basics.application#application-configuration)
наступним чином:

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

У коді вище ми налаштовуємо компонент [urlManager](/doc/guide/uk/topics.url),
встановлюючи його властивість `urlFormat` у значення `path` і додаючи кілька
правил маршрутизації.

Правила використовуються компонентом `urlManager` для розбору і створення URL 
у бажаному форматі. Наприклад, друге правило говорить, що, якщо запитуваний URL
`/index.php/posts/yii`, компонент `urlManager` повинен надіслати запит за
[маршрутом](/doc/guide/uk/basics.controller#route) `post/index` і створити
GET-параметр `tag` зі значенням `yii`. З іншого боку, при створенні URL із
маршрутом `post/index` і параметром `tag`, компонент `urlManager` буде також
використовувати це правило для створення бажаного URL `/index.php/posts/yii`.
Тому ми називаємо компонент `urlManager` двостороннім менеджером URL.

Компонент `urlManager` може і далі прикрашати наші URL, 
наприклад, приховуванням частини `index.php` у URL або створенням суфікса `.html`. 
Ми можемо легко отримати ці особливості, конфігуруючи різні властивості 
компонента `urlManager` у конфігурації додатка. За деталями зверніться до розділу 
[красиві адреси URL](/doc/guide/uk/topics.url) керівництва.
