ProgramacionWeb - Ayuda al webmaster
No has iniciado sesión
Conectar al sistema | Registrar usuario
Categorías Articulo
 
0 votos
Reescribir URL's con mod
 
 
Mod_Rewrite, es un módulo de Apache que nos permite transformar una URL del estilo /articulo/1/ en una url del modo articulo.php?id=1 sin que el usuario lo vea, de esta manera, cuando el usuario está accediendo a http://www.web.com/articulo/1/ en realidad accede a http://www.web.com/articulo.php?id=1 pero la dirección en el navegador es mas atractiva y facil de recordar.

Esto se hace con el parametro de configuración RewriteRule, que podemos indicar en nuestro archivo de configuración de apache httpd.conf o bien como explicaremos en este artículo en el archivo oculto .htaccess

Veamos un ejemplo de archivo .htaccess que pondremos en la raiz nuestro servidor para conseguir el efecto que he explicado al principio de esta web:
 
.htaccess
000 
001 
RewriteEngine on 
RewriteRule /*/*/ /$1.php?id=$2
 
De esta manera, todo lo que sea /x/y/ se convierte en /x.php/y

Este es un ejemplo muy genérico que podriamos aumentar añadiendo más reglas, por ejemplo, imaginar que tenemos una sección foro, en una carpeta y una sección articulos en la raiz, el archivo de configuración sería algo así:
 
.htaccess
000 
001 
002 
RewriteEngine on 
RewriteRule /foro/*/ /foro/mensaje.php?id=$1 
RewriteRule /articulos/*/ /articulo.php?id=$1
 
Como veis es muy sencillo, en el primer parametro de RewriteRule indicamos la URL a sustituir, podemos usar comodines ( * en el ejemplo pero existen muchos más) que al coincidir con un grupo de caracteres los guardan en las variables $1, $2 ... $N.

En el segundo parámetro indicamos la URL con la que sustituimos la anterior pudiendo usar las variables $1, $2 .. $N guardadas en el parametro 1.
 
 
Comentarios
Este artículo no ha sido comentado hasta el momento
 
Resolver dudas
Si tienes problemas o dudas con el contenido del artículo no dudes a preguntar en los foros de Otros de Programación Web indicando el artículo al que te refieres.