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. Зроблено це перш за все для SEO. Вважається, що пошукові машини можуть індексувати слова в URL.
Для досягнення нашої мети, змінимо конфігурацію додатка наступним чином:
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,
встановлюючи його властивість urlFormat
у значення path
і додаючи кілька
правил маршрутизації.
Правила використовуються компонентом urlManager
для розбору і створення URL
у бажаному форматі. Наприклад, друге правило говорить, що, якщо запитуваний URL
/index.php/posts/yii
, компонент urlManager
повинен надіслати запит за
маршрутом 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 керівництва.
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.