| Haciendo direcciones web amigables. |
|
|
|
| Jueves 26 de Febrero de 2009 15:42 | |||||||||
|
Cuando trabajamos con páginas dinámicas, es muy frecuente enviar algunos parámetros por la URL utilizando el método GET de comunicación con el Servidor Web. Esto nos permite fácilmente crear el contenido de la página en base a esos parámetros, pero trae como desventaja que las direcciones Web son difíciles de memorizar para una persona que quiera enlazar o recordar esa página. Una desventaja, aún peor, es que si tenemos muchos parámetros en la URL, a Google y los demás motores de búsqueda se le hace difícil poder seguir estos enlaces y hasta puede penalizar el sitio por detectar contenido dinámico. La solución a estos problemas es crear lo que se denominan direcciones Web amigables, utilizando el método del Servidor Web Apache mod_rewrite. En esta nota vamos a aprender qué es mod_rewrite y cómo utilizarlo en nuestro Sitio Web.
¿Qué es mod_rewrite?Mod_rewrite es un módulo de Apache que se ejecuta después de hacer un request al Servidor y antes de ejecutar cualquier script. Este módulo utiliza filtros para convertir una dirección solicitada en otra, que será finalmente la que se ejecute en el Servidor. Esta conversión se hace de manera transparente para el usuario.
Un pedido a www.aplicacion.com/catalogo/1.php Se puede traducir a www.aplicacion.com/catalogo.php?cat=1 Bien, a esta altura, seguramente, ya estás convencido de utilizar mod_rewrite.
Hay que destacar que el navegador puede solicitar cualquiera de las dos direcciones, y accederá al mismo recurso. En el Servidor no existe una carpeta “catalogo”, pero de esto el usuario no se entera, por lo tanto utilizar este método nos da mayor seguridad porque ocultamos información a los navegantes curiosos o a aquellos que quieran atacar nuestra aplicación. Es importante aclarar que la redirección se realiza en el mismo Servidor, es decir, que es una redirección interna, y el usuario va a estar viendo en su barra de direcciones del navegador la URL solicitada (no la convertida). Ahora nos dejamos de detalles técnicos y pasamosa lo que estabas esperando, cómo crear nuestras direcciones Web amigables, Usando mod_rewriteSupongamos que tenemos una página que muestra información de artículos por categorías. Para hacerlo bien simple, tenemos dos categorías, productos (categoría 1) y servicios (categoría 2) y accedemos a elles a través de los enlaces www.aplicacion.com/catalogo.php?cat=1 Ahora veamos los pasos que tenemos que seguir
rewriterule <secuencia a encontrar:pattern> <cadena para sustituir:substitution> Pattern es una expresión regular la cual es aplicada a la dirección URL actual. Nuestro .htaccess deberá tener las siguientes líneas Options FollowSymLinks
Analicemos un poco estas líneas
El módulo trabaja de la siguiente manera: Dirección solicitada: catalogo/1.php Por lo tanto, de ahora en más, en los enlaces o menús, deberemos ingresar la dirección catalogo/1.php Importante: se deben utilizar direcciones relativas en el filtro, es decir que no hay que poner el dominio.
Al utilizar mod_rewrite en nuestro sitio, podemos tener problemas al hacer referencias a otros enlaces o archivos CSS. Para eso solamente tenemos que agregar la siguiente línea en el HEAD del código HTML.
Con esto tenemos los pasos básicos para configurar el mod_rewrite para crear direcciones amigables..
La funcionalidad de mod_rewrite abarca mucho más que esto, y con el uso de expresiones regulares se pueden crear filtros más complejos para optimizar nuestras URLs., y hacer más eficientes los ejemplos que mencionamos en este artículo. Creo que es suficiente para hacer una introducción al uso del mod_rewrite.
Recursos para seguir aprendiendoMod_rewrite - Apache http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
Expresiones Regulares - Wikipedia http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular:
Powered by !JoomlaComment 3.26
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."
|
|||||||||


