Las URLs apuntando a varias páginas de nuestra Aplicación de Blog actualmente se ven feas. Por ejemplo, la URL para mostrar la página de un post se ve como:
/index.php?r=post/show&id=1&title=A+Test+Post
En esta sección, describimos cómo optimizar estas URLs y hacerlas SEO amigables. Nuestro objetivo es ser capaces de usar las siguientes URLs en la aplicación:
/index.php/posts/yii
: lleva a la pagina mostrando una lista de posts con la etiqueta yii
;/index.php/post/2/A+Test+Post
: lleva a la página que muestra el detalle del post con ID 2 cuyo título es A Test Post
;/index.php/post/update?id=1
: lleva a la página que permite actualizar el post con ID 1.Nota que en el formato de la segunda URL, incluimos el título de post en la URL. Esto es principalmente para hacer las URL SEO amigables. Se dice que los motores de búsqueda respetan las palabras encontradas en la URL cuando son indexadas.
Para cumplir nuestro objetivo, modificamos la configuración de la aplicación como sigue:
return array(
......
'components'=>array(
......
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'post/<id:\d+>/<title:.*?>'=>'post/view',
'posts/<tag:.*?>'=>'post/index',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
),
);
En lo anterior, configuramos el componente de urlManager configurando su propiedad urlFormat
que sea path
y agregando una serie de rules
(reglas).
Las reglas son usadas por urlManager
para clasificar y crear las URLs en el formato deseado. Por ejemplo, la segunda regla dice que si una URL /index.php/posts/yii
es pedida, el componente urlManager
debería ser responsable de despachar el pedido a la ruta post/index
y generar un parámetro GET tag
con el valor yii
. Por otro lado, cuando creamos una URL con la ruta post/index
y parámetro tag
, el componente urlManager
va a usar ésta regla para generar la URL deseada /index.php/posts/yii
. Por esta razón, decimos que urlManager
es un gestor de URL de doble-camino.
El componente urlManager
puede optimizar todavía más nuestras URLs, como ocultar index.php
en las URLs, agregando un sufijo .html
a las URLs. Podemos obtener estas funciones fácilmente con la configuración de varias propiedades de urlManager
en la configuración de la aplicación. Para más detalles, por favor consulta [La Guía]the Guide.
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.