El archivo htaccess y las rutas relativas

Hoy en día, la necesidad de optimizar nuestras páginas para los buscadores hace que sea casi obligatorio programar nuestros sitios web de forma que se pueda acceder a ellos mediante URLS amigables. ¿Y que es eso de las URL amigables? Pues bien, para explicarlo vamos a poner dos ejemplos de URLs, una normal y otra amigable:

http://www.tusitio.com/index.php?seccion=libros&articulo=10

http://www.tusitio.com/libros/10/

En los dos ejemplos de URLs anteriores, el navegador nos debería redirigir a la misma página, pero sin duda es mucho más clara la segunda URL que la primera. Esta segunda URL es la que se llama amigable y es la que los buscadores prefieren, de ahí su importancia.

¿Pues bien, como conseguimos esto en nuestro sitio web? Para ello, el método más utilizado es mediante el archivo .htaccess el cual nos permite establecer las RewriteRule, que no son sino reglas que convertirían una URL amigable en una URL interna y que es la que nosotros manejaremos en nuestra programación. Esta práctica esta muy extendida hoy en día, pero conviene tener en cuenta un detalle y es por el cual escribimos esta entrada.

Y es que al realizar esta reescritura de URL, estamos haciendo que el servidor interprete cual es la página que debe mostrar, pero hay un pequeño «handicap» y no es otro que el concerniente a las URLs relativas. Si en la programación haces uso de URLs relativas te encontrarás con que los contenidos de dichos elementos no se muestran correctamente. Y es que la reescritura se hace en el interprete a nivel de servidor, pero la parte de las URLs se interpreta en el navegador, por lo que no coinciden. Así si por ejemplo en el caso anterior tenemos en el directorio raiz además del archivo index.php una carpeta imagenes donde tenemos un archivo para mostrar, si usamos una URL relativa de la siguiente forma <img src=»imagenes/10.jpg»> cuando accedemos a la web mediante la URL amigable, nos encontraremos con que dentro del supuesto directorio «libros» deberíamos encontrar otro llamado «10» y dentro de este otro llamado «imagenes» que no existe. Por lo que la imagen no se mostraría correctamente. Para ello tenemos dos soluciones:

  • Usar una URL absoluta, en nuestro caso incluiríamos un código como este <img src=»http://www.tusitio.com/imagenes/10.jpg»>
  • Utilizar el elemento HTML BASE dentro de la cabecera de nuestra página, para definir la URL báse de todo el documento y luego podríamos usar urls relativas. La forma de usar este elemento HTML sería algo así: <BASE href=»http://www.tusitio.com»>

1 comentario en «El archivo htaccess y las rutas relativas»

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.