Una cuestión importante a tener en cuenta es tener URLs limpias que sean amigables ya que esto principalmente ayuda a tener un mejor SEO y también puede servir de mucho a un usuario común para recordarse de urls que visitó.
Yii de manera predeterminada crea enlaces de la siguiente manera:
/index.php?r=controlador/vista |
Pero que estos se pueden mejorar poniendo las propiedades del componente urlManager, a lo cual los enlaces quedarían así:
/controlador/vista |
Crear un .htaccess en la carpeta del proyecto con el siguiente código:
RewriteEngine on # if a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # otherwise forward it to index.php RewriteRule . index.php
Vamos a /protected/config/main.php y en el arreglo component agregamos:
'urlManager'=>array( 'urlFormat'=>'path', 'showScriptName'=>false, 'caseSensitive'=>false, ),
Con esto hemos limpiado las URLs de nuestro sistema, si nuestros controladores contienen mayúsculas es necesario colocar el atributo ‘caseSensitive’ en true.
Nota:
1- Tener activado el módulo mod_rewrite para que funcionen las URLs limpias.
2- En linux, específicamente apache2 por omisión no permite los .htaccess personalizados por lo que es necesario modificar el archivo de /etc/apache2/sites-available/default hay que ubicar la línea AllowOverride que inicialmente trae el valor none.
<directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all