Yii - Routing URL
Per modificare il percorso predefinito dell'applicazione, è necessario configurare il file defaultRoute proprietà.
Step 1 - Modifica il file config/web.php file nel modo seguente.
<?php
   $params = require(__DIR__ . '/params.php'); $config = [
      'id' => 'basic',
      'basePath' => dirname(__DIR__),
      'bootstrap' => ['log'],
      'defaultRoute' => 'site/contact',
      'components' => [
         //other code
?> 
    Step 2 - Devo http://localhost:8080/index.php. Vedrai l'impostazione predefinitacontact pagina.
 
    Per mettere temporaneamente l'applicazione in modalità di manutenzione, è necessario configurare il file yii\web\Application::$catchAll proprietà.
Step 3 - Aggiungi la seguente funzione al file SiteController.
public function actionMaintenance() {
   echo "<h1>Maintenance</h1>";
} 
    Step 4 - Quindi, modifica il file config/web.php file nel modo seguente.
<?php
   $params = require(__DIR__ . '/params.php');
   $config = [
      'id' => 'basic',
      'basePath' => dirname(__DIR__),
      'bootstrap' => ['log'],
      'catchAll' => ['site/maintenance'],
      'components' => [
         //OTHER CODE 
    Step 5 - Ora inserisci qualsiasi URL della tua applicazione, vedrai quanto segue.
 
    Creazione di URL
Per creare vari tipi di URL puoi utilizzare il file yii\helpers\Url::to()metodo di supporto. L'esempio seguente presuppone che venga utilizzato il formato URL predefinito.
Step 1 - Aggiungi un file actionRoutes() metodo al SiteController.
public function actionRoutes() {
   return $this->render('routes');
} 
    Questo metodo esegue semplicemente il rendering del file routes Visualizza.
Step 2 - All'interno della directory views / site, creare un file chiamato routes.php con il seguente codice.
<?php
   use yii\helpers\Url;
?>
<h4>
   <b>Url::to(['post/index']):</b>
   <?php
      // creates a URL to a route: /index.php?r = post/index
      echo Url::to(['post/index']);
   ?>
</h4>
<h4>
   <b>Url::to(['post/view', 'id' => 100]):</b>
   <?php
      // creates a URL to a route with parameters: /index.php?r = post/view&id=100
      echo Url::to(['post/view', 'id' => 100]);
   ?>
</h4>
<h4>
   <b>Url::to(['post/view', 'id' => 100, '#' => 'content']):</b>
   <?php
      // creates an anchored URL: /index.php?r = post/view&id=100#content
      echo Url::to(['post/view', 'id' => 100, '#' => 'content']);
   ?>
</h4>
<h4>
   <b>Url::to(['post/index'], true):</b>
   <?php
      // creates an absolute URL: http://www.example.com/index.php?r=post/index
      echo Url::to(['post/index'], true);
   ?>
</h4>
<h4>
   <b>Url::to(['post/index'], 'https'):</b>
   <?php
      // creates an absolute URL using the https scheme: https://www.example.com/index.php?r=post/index
      echo Url::to(['post/index'], 'https');
   ?>
</h4> 
    Step 3 - Tipo http://localhost:8080/index.php?r=site/routes, vedrai alcuni usi di to() funzione.
 
    Il percorso passava al yii\helpers\Url::to() il metodo può essere relativo o assoluto secondo le seguenti regole:
se la rotta è vuota, verrà utilizzata la rotta attualmente richiesta.
se la rotta non ha una barra iniziale, è considerata una rotta relativa al modulo corrente.
se la rotta non contiene barre, viene considerata un ID azione del controller corrente.
Il yii\helpers\Url La classe helper fornisce anche diversi metodi utili.
Step 4 - Modifica il file routes Visualizza come indicato nel codice seguente.
<?php
   use yii\helpers\Url;
?>
<h4>
   <b>Url::home():</b>
   <?php
      // home page URL: /index.php?r=site/index
      echo Url::home();
   ?>
</h4>
 
<h4>
   <b>Url::base():</b>
   <?php
      // the base URL, useful if the application is deployed in a sub-folder of the Web root
      echo Url::base();
   ?>
</h4>
 
<h4>
   <b>Url::canonical():</b>
   <?php
      // the canonical URL of the currently requested URL
      // see https://en.wikipedia.org/wiki/Canonical_link_element
      echo Url::canonical();
   ?>
</h4>
 
<h4>
   <b>Url::previous():</b>
   <?php
      // remember the currently requested URL and retrieve it back in later requests
      Url::remember();
      echo Url::previous();
   ?>
</h4> 
    Step 5 - Se inserisci l'indirizzo http://localhost:8080/index.php?r=site/routes nel browser web, vedrai quanto segue.
                    