Yii - Reglas de URL

Una regla de URL es una instancia si yii\web\UrlRule. losurlManager componentes utiliza las reglas de URL declaradas en su rules propiedad cuando el formato de URL bonito está habilitado.

Para analizar una solicitud, el administrador de URL obtiene las reglas en el orden en que se declaran y busca la primera regla.

Step 1 - Modificar el urlManager componente en el config/web.php archivo.

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

Step 2 - Vaya a su navegador web en http://localhost:8080/about, verá la página acerca de.

Una regla de URL se puede asociar con parámetros de consulta en este patrón:

<ParamName: RegExp>, donde -

  • ParamName - El nombre del parámetro

  • RegExp - Una expresión regular opcional utilizada para hacer coincidir los valores de los parámetros.

Supongamos que hemos declarado las siguientes reglas de URL:

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

Cuando las reglas se utilizan para parsing -

  • /index.php/articles se analiza en el artículo / índice
  • /index.php/articles/2014/php se analiza en el artículo / índice
  • /index.php/article/100 se analiza en el artículo / vista
  • /index.php/articles/php se analiza en artículos / php

Cuando las reglas se utilizan para creating URLs -

  • Url :: to (['artículo / índice']) crea /index.php/articles

  • Url :: to (['artículo / índice', 'año' => 2014, 'categoría' => 'php']) crea /index.php/articles/2014/php

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

  • Url :: to (['artículo / vista', 'id' => 100, 'fuente' => 'anuncio']) crea /index.php/article/100?source=ad

  • Url :: to (['artículo / índice', 'categoría' => 'php']) crea /index.php/article/index?category=php

Para agregar un sufijo a la URL, debe configurar el yii\web\UrlManager::$suffix propiedad.

Step 3 - Modificar el urlComponent en el config/web.php archivo.

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

Step 4 - Escriba la dirección http://localhost:8080/site/contact.htmlen la barra de direcciones del navegador web y verá lo siguiente en su pantalla. Observe lahtml sufijo.