0 follower

Людинозрозумілі 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.

Для досягнення нашої мети, змінимо конфігурацію додатка наступним чином:

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 !