17 noviembre 2009

Eliminar el index.php de la URL CodeIgniter



Uno de los inconvenientes de CodeIgniter es el sufijo index.php que se le debe agregar a la url para tener host/index.php/controlador/accion, ese sufij es molesto tanto para que google indexe la pagina, para solucionar esto debemos crear o reemplazar el contenido del archivo .htaccess es importante tener habilitado el mod_rewrite e indicarle al vitualHost que leea los archivos .htaccess, aqui el codigo del archivo:


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
# If we don’t have mod_rewrite installed, all 404’s
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin
ErrorDocument 404 /index.php
</IfModule>

Ahora cambiar la variable del archivo de configuracin de CodeIgniter

$config[‘index_page’] = "index.php";

Por:

$config[‘index_page’] = "";

con esto nuestra url queda host.cntrolador/accion

4 comentarios:

k001 dijo...

No necesariamente tienes que eliminar el index.php del config, basta con crear bien el .htaccess y que tu vhost tenga obvio mod_rewrite.

David Valdez dijo...

De hecho si tiene que eliminar la cadena "index.php" del config, si no la elimina cuando ocupe le helper url van a salirle los enlaces con index.php y no tendrá caso tener las pretty_urls u.u

Edgar C. dijo...

Buen día.

Bueno, estoy iniciando con el codeIgniter, y quiero hacer precisamente lo de quitar el index.php de mis urls, escribo el código que pones arriba en el htaccess y dejo en blanco en el archivo config el index_page .... pero no pasa nada de nada.

Será que me falta un paso, te agradecería mucho si me quitas de la duda

Abraham Zenteno Sánchez dijo...

Que tal Edgar C, verifica que en tu virtualhost de apache tengas la linea AllowOverride All el cual permite leer ficheros .htaccess, prueba con ello y comentanos :)

Excel 2013, convertir mes en texto a numero

Si tienes un mes en formato ENERO este lo cambiara a 02, funciona en la versión de Excel 2013, solo se tienen que reemplazar J2 por la celda...