10 de septiembre de 2007

Apache: Un ejemplo básico de mod_rewrite

mod_rewrite es un módulo que se puede instalar en los servidores Apache para re-escritura de urls de tal manera que si un usuario pone en su navegador "http://www.dominio.com/pagina" ésta cargará realmente el enlace "http://www.dominio.com/index.php?link=pagina", pero tranquilos, que el usuario seguirá viendo en su navegador "http://www.dominio.com/pagina".

Este tipo de enlaces quedan muy bonitos para el usuario, son fáciles de recordar, le dan una pequeña ayuda a la seguridad de tu sitio y además les gustan a los buscadores.

Para que funcione tenemos que tener instalado y activado el módulo en el servidor Apache. Funciona para todo tipo de páginas, ya sean ASP, PHP, etc... el lenguaje en que estén programadas no afecta a este módulo que se ejecuta a nivel de servidor.

Voy a poneros a continuación un ejemplo muy básico de mod_rewrite, más adelante ya os pondré otro ejemplo más complicado:

RewriteEngine On
RewriteRule ^img/ - [L]
RewriteRule ^contacto contacto.php [L]
RewriteRule ^perfumes index.php?id=1 [L]


Este código tenéis que añadirlo al fichero .htaccess y subirlo a la ruta de vuestro servidor (normalmente la carpeta httpdocs)

Con este ejemplo lo que conseguimos es:

RewriteEngine On --> Activa el módulo

RewriteRule ^img/ - [L] --> A la carpeta img no se le aplica el módulo (en caso contrario jamás podríais usar una imagen almacenada allí)

RewriteRule ^contacto contacto.php [L] --> Cada vez que un usuario ponga "http://www.midominio.com/contacto" cargará realmente "http://www.midominio.com/contacto.php"

RewriteRule ^perfumes index.php?id=1 [L] --> Cada vez que un usuario ponga "http://www.midominio.com/perfumes" realmente cargará "http://www.midominio.com/index.php?id=1"


Cómo os he dicho antes el ejemplo es muy básico, muy pronto iré poniendo ejemplos más complejos. Espero que a alguien le resulte útil.


Comparte este Post:
Menéame Digg!

1 comentario:

Anónimo dijo...

pues ya intente todos los ejemplos basicos que muestran y todos me marcan error, si fueran tan ambales de subir una carpeta con un ejemplo nomas para correrlo y empezar a hacer pruebas eso si seria basico