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.