Tutorial CodeIgniter

Para poder trabajar bien las url amigables en CodeIgniter, debemos quitar el index.php que sale por defecto cuando navegas por la aplicación. Hay que modificar dos ficheros:

Cuando navegamos por nuestra aplicación creada con CodeIgniter, podemos observar que la url contiene el index.php

1
www.midominio.com/index.php/contactar

Cuando lo que queremos es una url así (sin el index.php):

1
www.midominio.com/contactar

Para ello debemos modificar dos ficheros:

.htaccess

Hay que añadir las siguientes linias al fichero .htaccess que hay en la raiz de la aplicación:

1
2
3
4
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

Vigilad que alguna de las linias puede ser que ya las tengáis. Y debéis tener en cuenta que modificar el .htaccess puede hacer que la web deje de funcionar.

application/config/config.php

Hay que quitar el index.php de la variable index-page. Por defecto está así:

1
$config['index_page'] = 'index.php';

Y debe quedar así:

1
$config['index_page'] = '';

En algunas ocasiones no funciona

En algunas ocasiones, los pasos anteriores no funcionan, por lo que tendremos que cambiar del config.php lo siguiente:

$config['uri_protocol'] ="AUTO"

por

$config['uri_protocol'] = "REQUEST_URI"

Si aún así no funciona, en algunos servidores necesitaremos cambiar la última línia que hemos pueto en el .htacces

RewriteRule ^(.*)$ index.php/$1 [L]

por

RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

Con estas dos modificaciones, ya deberías poder navegar por tu aplicación sin el index.php

Algunos enlaces que os pueden ayudar:

Espero que os sea de utilidad.

Artículos relacionados

Codeigniter – Obligar a cargar página sin ut... En varias ocasiones, necesitaremos que una página no se guarde en caché. El tipo ejemplo es cuando vamos de una página a otra, y pulsamos posteriormen...
CodeIgniter – Tiempo expiración de las sesio... Este es uno de esos artículo breves y que no tienes en cuenta, hasta que surge el problema. Haces la aplicación con Codeigniter, trabajas con sesiones...
CodeIgniter – ID del último registro inserta... En muchas ocasiones, cuando insertamos un registro en la base de datos, nos interesa saber que identificador se le ha asignado. Bien, veamos cómo se h...
CodeIgniter – Debug e información de forma s... CodeIgniter proporciona una clase que facilita la programación. Activando esta clase desde nuestro controlador, en el momento de mostrar la vista, lis...