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.