Router en Codeigniter 3



Codeigniter permite reescribir URLS a tu gusto, para lo cual dispone de un archivo de configuración para en-rutar las URLs, ubicado en /system/application/config/routes.php (para versiones 2.0.3 en adelante la ruta es /application/config/routes.php )
Si lo editas, verás que tiene dos que son rutas reservadas:
$route[‘default_controller’] = “welcome”;
$route[‘scaffolding_trigger’] = “”;
Pero también puedes definir tus propias rutas:
para lo cual se utiliza un array de PHP denominado $route; generalmente la clave es el PATRÓN a matchear y el valor del array es la URL real a enrutar…

Veamos:

  • $route['seccion-bogs/blog-de-diego'] = "blogs/users/34"; 


En este caso si tu sitio es example.com, la dirección URL :


http://example.com/seccion-bogs/blog-de-diego se enrutara a http://example.com/blogs/users/34 internamente. tambien puedes usar wildcards :num :any asi:


  • $route['seccion-bogs/blog-de-(:any)'] = "blogs/users/$1";


Hace lo mismo que antes salvo que se enrutará el nombre como clave …


http://example.com/seccion-bogs/blog-de-juanperez12 se enrutará a http://example.com/blogs/users/juanperez12


Y también puedes utilizar expresiones regulares (REGEX) : 

  • $route['products/([a-z]+)/(\d+)'] = "$1/id_$2"; 


Con la siguiente definición una URL como http://example.com/products/herramientas/34 se re-escribiría a http://example.com/herramientas/id_34


puedes utilizar combinado REGEX y WILDCARDS: 

  • $route['products/([a-z]+)/(:any)'] = "$1/id_$2"; 


El efecto es el mismo.


Un enrutamiento que me sirvió en mi sitio:
  • $route['central-de-compras/[0-9a-zA-Z-\-\.]+/(:any)'] = "es/c/search/$1"; 


Entonces esta dirección central-de-compras/empresa-castilla.html/132125454 se enruta como es/c/search/132125454


Notar que no he tocado en absoluto el .htaccess , todo el enrutamiento es interno de CodeIgniter.


Si querés la info oficial del tema en el tutorial de codeigniter ingresa en http://codeigniter.com/user_guide/general/routing.html

COMPARTIR

Publicaciones Relacionadas

Anterior
Siguiente »