Yii - Règles d'URL

Une règle d'URL est une instance si yii\web\UrlRule. leurlManager composants utilise les règles d'URL déclarées dans son rules propriété lorsque le joli format d'URL est activé.

Pour analyser une requête, le gestionnaire d'URL obtient les règles dans l'ordre de leur déclaration et recherche la première règle.

Step 1 - Modifier le urlManager composant dans le config/web.php fichier.

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

Step 2 - Accédez à votre navigateur Web à l'adresse http://localhost:8080/about, vous verrez la page à propos.

Une règle d'URL peut être associée à des paramètres de requête dans ce modèle -

<ParamName: RegExp>, où -

  • ParamName - Le nom du paramètre

  • RegExp - Une expression régulière facultative utilisée pour faire correspondre les valeurs des paramètres

Supposons que nous ayons déclaré les règles d'URL suivantes -

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

Lorsque les règles sont utilisées pour parsing -

  • /index.php/articles est analysé dans l'article / index
  • /index.php/articles/2014/php est analysé dans l'article / index
  • /index.php/article/100 est analysé dans l'article / la vue
  • /index.php/articles/php est analysé en articles / php

Lorsque les règles sont utilisées pour creating URLs -

  • Url :: to (['article / index']) crée /index.php/articles

  • Url :: to (['article / index', 'year' => 2014, 'category' => 'php']) crée /index.php/articles/2014/php

  • Url :: to (['article / view', 'id' => 100]) crée /index.php/article/100

  • Url :: to (['article / view', 'id' => 100, 'source' => 'ad']) crée /index.php/article/100?source=ad

  • Url :: to (['article / index', 'category' => 'php']) crée /index.php/article/index?category=php

Pour ajouter un suffixe à l'URL, vous devez configurer le yii\web\UrlManager::$suffix propriété.

Step 3 - Modifier le urlComponent dans le config/web.php fichier.

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

Step 4 - Tapez l'adresse http://localhost:8080/site/contact.htmldans la barre d'adresse du navigateur Web et vous verrez ce qui suit sur votre écran. Remarquez lehtml suffixe.