Al fin después de batallar algunas semanas con los proveedores del servicio de hospedaje que utilizo, y de estar probando distintas configuraciones en el servidor, terminé la implementación de la reescritura de direcciones de la página, también llamado Url-Rewriting. Esto aplica tanto para aquí en el blog como para la página principal, permitiendo pasar de tener una detestable dirección como:
…/blog/index.php?p=6
A algo como:
…/blog/articulos/6
Lo que es muy valioso de este mecanismo de los servidores web es que proveen una herramienta que ayuda tanto a los usuarios como a los desarrolladores, aislándolos unos de los otros.
Por un lado tenemos a los usuarios, que en lugar de encontrar en la dirección una gigantesca fila de caracteres incomprensibles pueden encontrar ahora una secuencia más descriptiva de palabras. De esta forma la dirección puede cumplir cumplir con todas las reglas de usabilidad propuestas por Jakob Nielsen:
- un nombre de dominio que es fácil de recordar y escribir
- URLs cortos
- URLs fáciles de escribir
- URLs que permiten ver la estructura del sitio
- URLs que son “hackeables”, permitiéndole al usuario moverse a niveles superiores de la estructura de información al cortar el final del URL
- URLs persistentes que no cambian
Del lado de los desarrolladores, en este mundo de contenidos altamente dinámicos quedó ya muy atrás las épocas donde era todavía posible tener y editar muchas páginas fijas. Debido a que ya casi cualquier página tiene que ser muy versátil, modificable, y mantenible, es necesario que detrás de la página se construyan una buena cantidad de mecanismos y programas que permitan dichas características. El choque se presenta en el hecho de que la estructura de estos mecanismos y programas muy probablemente no será muy acorde a la estructura que tendrá la página, mucho menos una estructura entendible por un usuario común. Generalmente muchos de los sistemas existentes para páginas web dinámicas se basan en una sola dirección que dependiendo de una serie de parámetros varia el contenido que regresa. Esto para el usuario termina significando la larga fila de caracteres incompresibles en la barra de dirección, invariablemente de si las páginas tienen cualquier relación entre si.
El mecanismo de reescritura funciona tomando la dirección que el usuario escribe en su navegador, e internamente transformándola a otra. Para el usuario es una operación completamente transparente ya que desde su perspectiva obtendrá exactamente el mismo resultado de una dirección reescrita que de una dirección que accede a un archivo directamente. Al desarrollador le permite estructurar su programa de la forma que mejor le parezca, contribuyendo a la calidad del programa en sí. Además de esto, el usuario queda completamente aislado de cualquier cambio que fuera a tener la estructura interna de la página, cualquier cambio interno puede ser reescrito a exactamente a la misma dirección que el usuario ya está acostumbrado a usar o esperar.
Actualmente Apache tiene un mecanismo muy sólido para reescritura de direcciones (que es de hecho el que se utiliza en esta página). Junto con este, y otras configuraciones similares, es posible eliminar páginas duplicadas (como por ejemplo “www.dominio.com”, y “www.dominio.com/index.html”) mejorando su catalogación dentro de los buscadores, corregir vulnerabilidades que una página puede tener mediante la dirección con la que se accede, e inclusive mejorar lo que sucede cuando aun con toda la serie de mejoras, alguien escribe la dirección mal.