Yii - Regras de URL

Uma regra de URL é uma instância se yii\web\UrlRule. ourlManager componentes usa as regras de URL declaradas em seu rules propriedade quando o formato de URL bonita está habilitado.

Para analisar uma solicitação, o gerenciador de URL obtém as regras na ordem em que são declaradas e procura a primeira regra.

Step 1 - Modifique o urlManager componente no config/web.php Arquivo.

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

Step 2 - Vá para o seu navegador em http://localhost:8080/about, você verá a página sobre.

Uma regra de URL pode ser associada a parâmetros de consulta neste padrão -

<ParamName: RegExp>, onde -

  • ParamName - O nome do parâmetro

  • RegExp - Uma expressão regular opcional usada para corresponder aos valores dos parâmetros

Suponha que declaramos as seguintes regras de URL -

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

Quando as regras são usadas para parsing -

  • /index.php/articles é analisado no artigo / índice
  • /index.php/articles/2014/php é analisado no artigo / índice
  • /index.php/article/100 é analisado no artigo / visualização
  • /index.php/articles/php é analisado em artigos / php

Quando as regras são usadas para creating URLs -

  • Url :: to (['article / index']) cria /index.php/articles

  • Url :: to (['artigo / índice', 'ano' => 2014, 'categoria' => 'php']) cria /index.php/articles/2014/php

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

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

  • Url :: to (['artigo / índice', 'categoria' => 'php']) cria /index.php/article/index?category=php

Para adicionar um sufixo ao URL, você deve configurar o yii\web\UrlManager::$suffix propriedade.

Step 3 - Modifique o urlComponent no config/web.php Arquivo.

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

Step 4 - Digite o endereço http://localhost:8080/site/contact.htmlna barra de endereço do navegador da web e você verá o seguinte na tela. Observe ohtml sufixo.