Yii - Правила URL

Правило URL является экземпляром, если yii\web\UrlRule. ВurlManager компоненты используют правила URL, объявленные в его rules свойство, когда включен красивый формат URL.

Чтобы проанализировать запрос, диспетчер URL-адресов получает правила в том порядке, в котором они объявлены, и ищет первое правило.

Step 1 - Измените urlManager компонент в config/web.php файл.

'urlManager' => [
   'showScriptName' => false,
   'enablePrettyUrl' => true,
   'rules' => [
      'about' => 'site/about',
   ]
],

Step 2 - Зайдите в свой веб-браузер по адресу http://localhost:8080/about, вы увидите страницу с информацией.

Правило URL-адреса может быть связано с параметрами запроса в этом шаблоне -

<ParamName: RegExp>, где -

  • ParamName - Имя параметра

  • RegExp - Необязательное регулярное выражение, используемое для сопоставления значений параметров

Предположим, мы объявили следующие правила URL -

[
   'articles/<year:\d{4}>/<category>' => 'article/index',
   'articles' => 'article/index',
   'article/<id:\d+>' => 'article/view',
]

Когда правила используются для parsing -

  • /index.php/articles разбирается в статье / указателе
  • /index.php/articles/2014/php разбирается в статье / указателе
  • /index.php/article/100 разбирается в статье / представлении
  • /index.php/articles/php разбирается на статьи / php

Когда правила используются для creating URLs -

  • Url :: to (['article / index']) создает /index.php/articles

  • Url :: to (['article / index', 'year' => 2014, 'category' => 'php']) создает /index.php/articles/2014/php

  • Url :: to (['article / view', 'id' => 100]) создает /index.php/article/100.

  • Url :: to (['article / view', 'id' => 100, 'source' => 'ad']) создает /index.php/article/100?source=ad

  • Url :: to (['article / index', 'category' => 'php']) создает /index.php/article/index?category=php

Чтобы добавить суффикс к URL-адресу, необходимо настроить yii\web\UrlManager::$suffix свойство.

Step 3 - Измените urlComponent в config/web.php файл.

'urlManager' => [
   'showScriptName' => false,
   'enablePrettyUrl' => true,
   'enableStrictParsing' => true,
   'suffix' => '.html'
],

Step 4 - Введите адрес http://localhost:8080/site/contact.htmlв адресной строке веб-браузера, и вы увидите на экране следующее. Обратите внимание наhtml суффикс.