# Articulos

Buscar:

PAGINACIÓN:

> Uso de MOD_REWRITE

Primer tutorial  :P

Bueno, voy a intentar explicaros qué es mod_rewrite y cómo se usa (y algunos ejemplos prácticos). Según la documentación en inglés del apache "This module uses a rule-based rewriting engine (based on a regular-expression parser) to rewrite requested URLs on the fly. It supports an unlimited number of rules and an unlimited number of attached rule conditions for each rule, to provide a really flexible and powerful URL manipulation mechanism.", es decir, que se basa en reescribir las peticiones url al vuelo. Funciona por reglas (ilimitadas, según la documentación), y permite una flexible y poderosa manipulación del mecanismo URL.

Básicamente (y en un lenguaje más ameno) es una forma de transformar un tipo de URL en otro, creando como redirecciones. Normalmente se usan para hacer estáticas las webs escritas en php (como este blog), pero tiene muchos otros usos. Por ejemplo, puedes tener una web así www.bailaelchikichiki.com/foro (un foro que está en la carpeta /foro de tu web, pero en la raiz no tienes nada, y la web sólo la usas para el foro) y deseas que la gente sea redirigida automáticamente al foro sin tener que escribir /foro, pues podrías crear una regla como esta 'index.php /foro/index.php'. Este ejemplo redirecciona todas las peticiones que van a index.php hacia /foro/index.php (en el navegador no haría falta escribir /foro/index.php).

Para todo esto, hay que manipular un fichero llamado .htaccess, que contiene todas las reglas. Al final del documento, habilitaremos el mod rewrite de la siguiente forma:

RewriteEngine On


En caso de querer ocultar las variables en peticiones get (del tipo index.php?pagina=inicio), añadiríamos lo siguiente:

RewriteRule ^([a-zA-Z]+).htm$ index.php?pagina=$1 [L,NC]


Con esto ya tendríamos una redirección básica, de manera que si escribiesemos www.bailaelchikichiki.com/inicio.htm accederíamos a nuestra web situada en index.php?pagina=inicio

Si tenemos más de una variable, sólo hay que añadir más cláusulas. Por ejemplo, tenemos index.php?pagina=noticias&num=3 , ok? pues el mod_rewrite sería..

RewriteRule ^([a-zA-Z]+)/([0-9]+).htm$ index.php?pagina=$1&num=$2 [L,NC]


Así pues, accederíamos mediante www.bailaelchikichiki.com/noticias/3.htm en vez de index.php?pagina=noticias&num=3 .

Espero que con esto haya quedado todo un poco más claro. Por cierto, si haceis el mod_rewrite tenedreis que cambiar TODOS los enlaces de vuestro código al nuevo formato  :)



Escrito por: ToRDeN @ 21/02/2008 (09:05) ~ [ComentarComentar (5 comentarios y 371 lecturas)]
Categoría: Tutoriales, mod_rewrite Tags: tutoriales, mod_rewrite, htaccess

Hay 5 comentario(s) referentes al artículo

house sun australia sea glass are man

[#1] Escrito por Nick (01/09/2008)

Very Nice Site! Thanx!
http://excellent-credit-card.blogspot.com

[#2] Escrito por bad creditcards (19/08/2008)

tabueno

[#3] Escrito por shei (21/02/2008)

Deberías cambiar también otro detalle.
Para poder ver los comentarios,tienes que obligatoriamente comentar ,o ir a esa opción.
tabueno.

[#4] Escrito por shey (21/02/2008)

house jhon microsoft deliver man frog home green

[#5] Escrito por Nick (31/08/2008)


Tu nick: