Yii2 – Redirecciones y Htaccess

Hoy toca incluir cómo hacer las redirecciones y htaccess en yii2 para que fácilmente se puedan hacer urls amigables. Lo saqué de está página (aunque hay unas modificaciones mías en el archivo web.php).

Básicamente es necesario hacer 3 pasos (recordar que {root} es el lugar donde hemos creado la plantilla básica:

Paso 1: Crear fichero {root}/.htaccess (para redireccionarlo todo a la carpeta web menos aquellos ficheros o directorios que existan)

<IfModule mod_rewrite.c>
 Options +FollowSymlinks
 RewriteEngine On
</IfModule>
<IfModule mod_rewrite.c>
 RewriteCond %{REQUEST_URI} ^/.*
 RewriteRule ^(.*)$ web/$1 [L]
 RewriteCond %{REQUEST_URI} !^/web/
 RewriteCond %{REQUEST_FILENAME} !-f [OR]
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^.*$ web/index.php
</IfModule>

Paso 2: Crear fichero {root}/web/.htaccess (para que pase todo por el index.php, menos como en el caso anterior aquellos ficheros o directorios que existan)

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

Paso 3: Actualizar fichero {root}/config/web.php (indicar a yii2 que se van a mostrar urls amigables y definir las primeras reglas). Estas reglas te permitirán también pasar un parámetro por get.

'request' => [
    'baseUrl' => '',
],
'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        '' => 'site/index',
        //'<action>'=>'site/<action>',
        '<controller:\w+>/<id:\d+>'=>'<controller>/view',
        '<controller:\w+><action:\w+>/<id:\d+>'=>'<controller>/<action>',
        '<controller:\w+><action:\w+>'=>'<controller>/<action>',
    ],
],

Leave a Reply

Your email address will not be published. Required fields are marked *