Yii - Formatos de URL
Cuando una aplicación Yii procesa una URL solicitada, primero analiza la URL en una ruta. Luego, para manejar la solicitud, esta ruta se usa para instanciar la acción del controlador correspondiente. Este proceso se llamarouting. El proceso inverso se llama creación de URL. losurlManagerEl componente de la aplicación es responsable del enrutamiento y la creación de URL. Proporciona dos métodos:
parseRequest() - Analiza una solicitud en una ruta.
createUrl() - Crea una URL a partir de una ruta determinada.
Formatos de URL
los urlManager El componente de la aplicación admite dos formatos de URL:
El formato predeterminado utiliza un parámetro de consulta r para representar la ruta. Por ejemplo, la URL/index.php?r=news/view&id=5 representa la ruta news/view y el id parámetro de consulta 5.
El bonito formato de URL utiliza la ruta adicional con el nombre del script de entrada. Por ejemplo, en el ejemplo anterior, el formato bonito sería/index.php/news/view/5. Para utilizar este formato, debe establecer las reglas de URL.
Para habilitar el formato de URL bonito y ocultar el nombre del script de entrada, siga estos pasos:
Step 1 - Modificar el config/web.php archivo de la siguiente manera.
<?php
$params = require(__DIR__ . '/params.php');
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'components' => [
'request' => [
// !!! insert a secret key in the following (if it is empty) -
//this is required by cookie validation
'cookieValidationKey' => 'ymoaYrebZHa8gURuolioHGlK8fLXCKjO',
],
'cache' => [
'class' => 'yii\caching\FileCache',
],
'user' => [
'identityClass' => 'app\models\User',
'enableAutoLogin' => true,
],
'errorHandler' => [
'errorAction' => 'site/error',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => true,
],
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'urlManager' => [
'showScriptName' => false,
'enablePrettyUrl' => true
],
'db' => require(__DIR__ . '/db.php'),
],
'modules' => [
'hello' => [
'class' => 'app\modules\hello\Hello',
],
],
'params' => $params,
];
if (YII_ENV_DEV) {
// configuration adjustments for 'dev' environment
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = [
'class' => 'yii\debug\Module',
];
$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
];
}
return $config;
?>
Acabamos de habilitar el pretty URL format y ha desactivado el nombre del script de entrada.
Step 2 - Ahora, si escribe http://localhost:8080/site/about en la barra de direcciones del navegador web, verá la bonita URL en acción.
Tenga en cuenta que la URL ya no es http://localhost:8080/index.php?r=site/about.