Yii - Regole di URL

Una regola URL è un'istanza se yii\web\UrlRule. IlurlManager componenti utilizza le regole URL dichiarate nel suo file rules proprietà quando è abilitato il formato URL carino.

Per analizzare una richiesta, il gestore URL ottiene le regole nell'ordine in cui sono state dichiarate e cerca la prima regola.

Step 1 - Modifica il file urlManager componente in config/web.php file.

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

Step 2 - Vai al tuo browser web all'indirizzo http://localhost:8080/about, vedrai la pagina delle informazioni.

Una regola URL può essere associata ai parametri di query in questo modello:

<ParamName: RegExp>, dove -

  • ParamName - Il nome del parametro

  • RegExp - Un'espressione regolare facoltativa utilizzata per abbinare i valori dei parametri

Supponiamo di aver dichiarato le seguenti regole URL:

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

Quando le regole vengono utilizzate per parsing -

  • /index.php/articles viene analizzato nell'articolo / index
  • /index.php/articles/2014/php viene analizzato nell'articolo / index
  • /index.php/article/100 viene analizzato nell'articolo / vista
  • /index.php/articles/php viene analizzato in articoli / php

Quando le regole vengono utilizzate per creating URLs -

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

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

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

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

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

Per aggiungere un suffisso all'URL, è necessario configurare il yii\web\UrlManager::$suffix proprietà.

Step 3 - Modifica il file urlComponent nel config/web.php file.

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

Step 4 - Digita l'indirizzo http://localhost:8080/site/contact.htmlnella barra degli indirizzi del browser web e vedrai quanto segue sullo schermo. Notare ilhtml suffisso.