CodeIgniter User Guide Version 1.6.1


URLs en CodeIgniter

Por defecto, las URLs en CodeIgniter están diseñadas para ser amigable a los motores de búsqueda y amigables a los humanos. En vez de usar el estándar acercamiento "query string" para URLs que es sinónimo con sistemas dinámicos, CodeIgniter usa un aproximamiento basado-en-segmentos:

www.su-sitio.com/noticias/articulo/mi_articulo

Nota: Las URLs con "query string" pueden ser habilitadas opcionalmente, como se describe abajo.

Segmentos URI

Los segmentos en la URL, en consecuencia con la aproximación Modelo-Vista-Controlador, usualmente representa:

www.su-sitio.com/clase/funcion/ID
  1. El primer segmento representa la clase controlador que debe ser invocado.
  2. El segundo segmento representa la función de la clase, o método, que debe ser llamado.
  3. El tercer, y cualquier segmento adicional, representa el ID y cualquier variable que será pasada al controlador.

La Clase de URI y el Asistente de URL contiene funciones que hacen fácil trabajar con datos de URI. En adición, sus URLs pueden ser remapeados usando la característica de Routeo de URI para más flexibilidad.

Remover el archivo index.php

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

www.su-sitio.com/index.php/noticias/articulo/mi_articulo

Puede fácilmente remover este archivo usando un archivo .htaccess con algunas simples reglas. Aquí hay un ejemplo de tal archivo, usando el método "negativo" en el cual todo es redireccionado excepto los items especificado:

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

En el ejemplo anterior, cualquier pedido HTTP distinto del que sea para index.php, images, y robots.txt es tratado como un pedido para el archivo index.php.

Agregando un sufijo a la URL

En su archivo config/config.php puede especificar un sufijo que será agregado a todas las URLs generada por CodeIgniter. Por ejemplo, si una URL es esta:

www.su-sitio.com/index.php/productos/ver/zapatillas

Puede opcionalmente agregar un sufijo, como .html, haciendo la página aparecer ser de un cierto tipo:

www.su-sitio.com/index.php/productos/ver/zapatillas.html

Habilitando "Query Strings"

En algunos casos, puede preferir usar URLs con query strings:

index.php?c=productos&m=ver&id=345

CodeIgniter opcionalmente soporta esta capacidad, la cual puede ser habilitada en su archivo application/config.php. Si abre su archivo de configuración verá estos items:

$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';

Si cambia "enable_query_strings" a TRUE esta característica se activará. Sus controladores y funciones serán entonces accesibles usando las palabras "trigger" que haya establecido para invocar sus controladores y métodos:

index.php?c=controlador&m=metodo

Por favor note: Si está usando query strings tendrá que construir sus propias URLs, en vez de utilizar los asistentes de URL (y otros asistentes que generan URLs, como alguno de los asistentes de formularios) ya que ellos están diseñados para trabajar con URLs basadas en segmentos