Me mudo

Este blog no recibirá ya más actualizaciones. Ve al nuevo blog enricflorit.com o averigua por qué me mudo.

lunes, 8 de octubre de 2012

Cómo usar correctamente el RewriteEngine (parte 1)

En este primer post sobre configuración de servidores Apache voy a empezar a hablar del RewriteEngine, posiblemente uno de los casos en que más usamos el fantástico archivo .htaccess (otro sería la creación de errores personalizados).
Aviso que en este post no pondré ningún ejemplo, así que habrá que esperar a otro en el que sí pondré ejemplos de cada una de las maneras de usar el mod-rewrite que menciono :).
Saber si lo tienes activado
Lo primero que necesitas saber es si puedes usar RewriteEngine en tu servidor. Si no lo está y no tienes acceso a la configuración de apache, lo siento pero tendrás poco que hacer. Así que para no perder el tiempo con el resto de ejemplos, primero haz lo siguiente:
  1. Crea un archivo llamado .htaccess en la carpeta raíz de los archivos de tu servidor.
  2. En el archivo, introduce estas líneas:
    RewriteEngine On
    RewriteRule prueba\.html http://www.google.es [R]
  3. Guarda, sube el archivo al servidor remoto
  4. Abre la dirección http://tudominio.com/prueba.html
  5. Si se abre la página principal de Google, ¡Enhorabuena! Tienes RewriteEngine disponible. Si no es así... Lo siento, tendrás que usar otra forma de crear URLs amigables (que las hay ;)).
Usos de RewriteEngine
El uso más común que se le da a esta opción de configuración de Apache es para reescribir URLs y hacerlas más amigables, es decir, más sencillas para el usuario y para los motores de búsqueda. Pero también tiene otros usos, menos conocidos, y sobre todo, menos extendidos.
  • Como ya he dicho, la reescritura de URLs. Está claro que es mucho más legible /noticias/23 que ?id=23, y más cuando tenemos más de dos o tres variables que recoger de la URL. Esta aplicación no es, en principio, complicada, siempre que tengamos disponible el mod-rewrite de Apache.
  • Protección contra el robo de ancho de banda: puede que visitando algún foro hayas visto alguna vez una imagen que no aparece. En su lugar, una advertencia y, normalmente, una URL con la página original de la imagen. Esta imagen está protegida con RewriteEngine, y es una buena manera de proteger tu contenido propio de apropiamientos fáciles (al menos, que se tengan que descargar el archivo!).
  • Exclusividad de un enlace a un archivo o página: el caso anterior tiene otra aplicación. Pongamos que tienes un archivo PDF, pero no quieres que otros puedan enlazar directamente al archivo, sino solo a una página de aterrizaje que a su vez incluye un enlace al archivo. Esto es posible gracias también al RewriteEngine...
  • Sentencias para el mod-rewrite Para usar este módulo de apache, solo tenemos que activarlo desde un archivo .htaccess. Este archivo deberá estar dentro de la carpeta a la que queremos aplicar el mod-rewrite y las opciones que escribamos.
    La línea para inicializar el módulo es sencilla:
    RewriteEngine On A partir de aquí, podemos pasar directamente a las espresiones regulares, o bien definir algunos parámetros más:
    RewriteBase [directorio base de las url reescritas]
    RewriteCond [variable] [regexp a comparar con la variable]
    RewriteRule [regexp] [url a reescribir]


    *(regexp = expresión regular)
    Aplicando estos conceptos, y con la ayuda de flags (condiciones adicionales para las RewriteCond y RewriteRule), podremos aplicar RewriteEngine a los casos de más arriba. Nos vemos en la segunda parte del post!
    Saludos ;)

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...