Людинозрозумілі URL
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 керівництва.