rss
twitter
  •  

CodeIgniter – URL amigable con guión

| Posted in General |

2

Codeigniter, así como muchos otros frameworks están basados en MVC, y los controladores al ser clases de POO, sus nombres y métodos no pueden llevar guión “-”

Así pues una URL típica del método MVC sería:
dominio.com/controlador/método/dato1/dato2

Pero qué sucede si quiero URLs más amigables para los motores de búsqueda, para el dichoso SEO ;-) algo como:
dominio.com/controlador-principal/

Pues no podría de buenas a primeras jugando con el nombre del controlador, es por ello que recurrimos a la manipulación del enrutado (routing) el cual encontramos en el archivo routes.php


$route['(.+)-(.+)-(.+)-(.+)-(.+)'] = “$1_$2_$3_$4_$5″;
$route['(.+)-(.+)-(.+)-(.+)'] = “$1_$2_$3_$4″;
$route['(.+)-(.+)-(.+)'] = “$1_$2_$3″;
$route['(.+)-(.+)'] = “$1_$2″;

Así soporta URLs con guiones de hasta 5 segmentos, por ejemplo, si tenemos nuestra dirección “dominio.com/analisis-precio-unitario”, estas líneas reescribirán y llamará a la clase “dominio.com/analisis_precio_unitario”.

Si necesitas más segmentos, solamente ve añadiendo más líneas siguiendo el mismo patrón.

Gracias a http://www.wakamolee.com/ por el dato !

Comentarios (2)

Saludos Alexander, tengo una duda que vino a mi mente cuando lei este articulo. Supón que deseo hacer una aplicación web que maneja perfiles al estilo Twitter, es decir http://www.dominio.com/usuario.

Cual seria la mejor implementación si estoy usando codeigniter para lograr esto? Entiendo que si manejo un controlador primario y recibo el “usuario” como parametro funcionaria, pero hay otra manera?

Gracias y excelente blog.

Saludos,
Resolví agregando un enrutado en el archivo routes.php que esta en la carpeta config:

$route['(\d+)/[a-z-A-Z1-9_]+’] = ‘controller/method/$1

Y en el controlador manejo lo pasado por url haciendo la logica necesaria en cada caso :)

Escriba un comentario

*