PHP, CodeIgniter y jQuery
CodeIgniter: mod_rewrite
Uno de los principales inconvenientes de CodeIgniter es, en parte, visual en la dirección URL. Solemos tener nuestros programas con http://localhost/index.php/controlador/funcion y seguramente quedaría mucho mejor algo tipo: http://localhost/controlador/funcion, ¿verdad? Pues bien, para hacer esto necesitaremos usar Apache y el modulo mod_rewrite.
Para empezar será necesario saber si estamos usando mod_rewrite en Apache. Lo más fácil es, directamente, ir al archivo de configuración (el archivo http.conf) y buscar: mod_rewrite.so. Deberíamos encontrar la siguiente línea:
[code]LoadModule rewrite_module modules/mod_rewrite.so[/code]
Sin embargo, si esta contiene un símbolo de almohadilla (#) es que no esta activado. Si lo contiene al principio, lo borramos, guardamos y reiniciamos el servidor. Así, mod_rewrite se iniciará cada vez al iniciar Apache.
Ahora es el momento de crear nuestro archivo de configuración especifico en el directorio donde este nuestro index.php. A este archivo le pondremos de nombre .htaccess y contendrá lo siguiente:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
# 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
Bien, con esto ya nos ocupamos de cuando se acceda a nuestra web automáticamente, lo que hace el servidor web, es catalogar como si accediéramos a la misma pero con index.php/ al principio. Solo nos queda una cosa, que CodeIgniter nos construya los enlaces sin el index.php/. De este modo, accedemos al archivo config.php y cambiaremos la variable $config['index_page']:
De:
A:
Y esto es todo para tener unas direcciones URL mucho más limpias. Espero que les haya ayudado de nuevo y hasta pronto.
| Imprimir artículo | Este artículo fue publicado por Isern Palaus el 30 Marzo 2008 a las 16:17, y está archivado en CodeIgniter. Sigue las respuestas a esta entrada a través de RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio. |



hace 2 años
Esta muy bien este tutorial seguro que a mucha gente le viene de fabula. También iria muy bien ya que se usa htaccess a restringir el acceso a segun que carpetas (es decir a todas menos el application).Un saludo!
pd:perdon pero le di al enviar sin querer mientras escribia
hace 2 años
Yo probe el .htaccess y no me funciono bien, me decia “No input file specified” asi que busque y lo q si me funciono bien fue esto:[code]
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]
[/code]
Fuente:http://codeigniter.com/wiki/Dreamhost_.htaccess/
Lo segundo estuvo interesante, gracias!
hace 1 año
Perfecto santiago, habia tenido problemas con el rewrite -el que todo mundo dice que funciona- la solucion presentada me funcionó a la perfeccionó en mi hosting (dattatec).hace 1 año
Muchas gracias igual hicimos una actualización en el server y ya no jalo el codeigniter, muchas gracias por estas lineas. Regresaron a la vida nuestro sitiohace 1 año
muy bueno…cómo podría construir una url como metroflog o fotolog
hasta ahora tengo algo asi en codeigniter
http://www.miweb.com/index.php/usuarios/nombre_usuario
Gracias a tu post, he logrado
http://www.miweb.com/usuarios/nombre_usuario
ocultar el index, pero cómo logro ocultar el controlador usuarios y quede de la siguiente manera
http://www.miweb.com/nombre_usuario
donde nombre_usuario
seria el parametro para ejecutar el constructor de mi controlador usuarios
Gracias de antemano. Saludos