Juan Rabadan

7Jan/100

Url en CodeIgniter

Las urls, bajo el framework CodeIgniter, fueron creadas de tal modo que por defecto sean amigables tanto para el ojo humano como para el estómago de los motores de búsqueda (search engines). En reemplazo del esquema comumente utilizado por websites dinámicos, como lo es el de parámetros por querystring, CodeIgniter se apoya en uno de partes / segmentos. Por ejemplo: www.juanrabadan.com.ar/notas/leer/1

Nota: Si precisamos utilizar los querystring, podemos habilitarlo en el archivo de configuración.

Composición de la URI

Las partes o segmentos en las URL, siguiendo con el paradigma del modelo MVC (modelo - vista - controlador), podemos representarlas con el siguiente ejemplo.

www.juanrabadan.com.ar/class/function/ID

1. El primer segmento representa la clase del controlador que debería ser invocado.
2. El segundo segmento representa la función de esta clase, o el método que debería ser llamado.
3. El tercer segmento y cualquier segmento adicional, representa el ID y cualquier otra variable que será pasada al controlador.

La clase URI y el helper URL contienen diferentes funciones que hacen muy fácil  trabajar con la información contenida en las URI. En adición, cualquier URL puede ser remapeada utilizando la característica de URI Routing para obtener mayor flexibilidad.

Como remover "index.php" en las URL de  CodeIgniter

Por defecto, el archivo index.php  será incluido en todas las URLs:

www.juanrabadan.com.ar/index.php/notas/leer/1

Podemos remover fácilmente el segmento index.php de todas las URLs de nuestra aplicación. Para eso debemos incluir las siguientes linesas en nuestro archivo .htaccess situado en la raíz de la aplicación.

 RewriteEngine on
 RewriteCond $1 !^(index\.php|images|robots\.txt)
 RewriteRule ^(.*)$ /index.php/$1 [L]

En el ejemplo anterior, cualquier petición HTTP que no sea explicitamente index.php, images ó robots.txt es tratado como una petición para index.php.

Agregando sufijos a las URL

En el archivo config.php de nuestra aplicación (/system/application/config/config.php) podemos especificar un sufijo que será agregado por defecto a todas las URLs generadas por CodeIgniter. Por ejemplo si la URL es esta:

www.juanrabadan.com.ar/servicios/ver/consultoria

Podemos agregar de manera opcional, el sufijo .html, haciendo que la URL se parezca más a una página de un cierto tipo. De esta forma la URL nos quedaría
www.juanrabadan.com.ar/servicios/ver/consultoria.html

La información fue extraída del manual online de CodeIgniter