Usuario anónimo ¿Quieres tener tu propio blog?
Crear blog gratis en OboLog

Prevenir el hotlinking e implementar REST

por obokaman
lunes, 10 de enero del 2005 a las 17:58
guardado en

Nuevas características en el obokaman.com. Muy posiblemente las hayas pasado por alto, y por eso mismo las comento aquí, por si te son de utilidad en algún momento. Se trata de dos soluciones concretas que tienen que ver con el fichero de configuración .htaccess y el mod rewrite para Apache, que permite que el servidor web "reescriba" una URL que recibe.

En primer lugar, este último mes he visto que estamos llegando al límite de transferencia del hosting de obokaman.com, 4Gb al mes. Esto ha venido dado por diversas circunstancias, como algunas fotos tituladas "maremoto" en la galería, que han provocado un aluvión de visitas desde Google Images, y el hecho que diversas páginas externas enlazan directamente con imágenes de obokaman.com (algo conocido como hotlinking o robo de ancho de banda), provocando que se descarguen de este servidor cada vez que alguien visita su web. Feo. Aunque supongo que la mayoría de las veces se hace por desconocimiento. Sea como sea, antes de plantearme eliminar alguna sección de la web para reducir tráfico, prefiero plantearme alguna opción menos bestia. He optado por bloquear el acceso a las imágenes de obokaman.com desde el exterior. A partir de ahora, cuando alguien muestre una imagen de obokaman.com en su server, aparecerá este gif.

Esto es sencillo de conseguir modificando o creando un fichero llamado ".htaccess" en la carpeta raíz, con el siguiente contenido:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?obokaman\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?internostrum\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?bloglines\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?feedness\.com/ [NC]
RewriteRule \.(jpe?g|gif|bmp|png)$ nohotlink.gif [L]

Como ves, las líneas donde aparece "RewriteCond", son en las que se especifica qué servidores son los "autorizados". En mi caso he activado dos lectores de noticias y la página que permite hacer las traducciones de catalán a castellano. Al final, RewriteRule, le dice qué hacer cuando se cumplan las condiciones _redireccionar a la imagen nohotlink.gif_. Tu puedes cambiar esas lineas para adaptarlo a tus necesidades.

El segundo tema que queria tratar de instaurar en obokaman.com era referente a las URL "amigables", esto es, intentar evitar las direcciones del tipo "indice_msg.php?blog=colectivo&categoria=Internet", que resultan ininteligibles en muchos casos y cambiarlo por algo del tipo "/archivos/colectivo/internet". De la misma manera, a partir de ahora para acceder a los mensajes lo haremos usando la url www.obokaman.com/mensaje/id_del_mensaje, para acceder al blog de cada uno, lo haremos escribiendo www.obokaman.com/blog/nombre_de_usuario., etc... Aunque las URL así lo indiquen, no hay ninguna carpeta en la web que se llame "blog" ni "archivos" ni "mensaje". De traducir esas URL a las correctas se encarga de nuevo el mod rewrite de Apache. Estas son las lineas que convierten las URL en el caso de obokaman.com

RewriteEngine On
  RewriteRule ^(.*)mensaje/(.*)/?$ /mensaje/$2 [QSA]
  RewriteRule ^(.*)archivos/(.*)/(.*)?/?$ /indice_msg.php?blog=$2&categoria=$3 [L]
  RewriteRule ^(.*)archivos/(.*)/?$ /indice_msg.php?blog=$2&categoria=$3 [L]
  RewriteRule ^(.*)archivos/?$ /indice_msg.php [QSA]
  RewriteRule ^(.*)buscar/?$ /buscar.php [QSA]
  RewriteRule ^(.*)blog/(.*)/?$ /index.php?blog=$2 [QSA]

RewriteRule le especifica mediante expresiones regulares, la cadena modelo y la URL real a la que se debe redireccionar en cada caso. Lo de las expresiones regulares tiene candela. Si quieres empaparte con su sintaxis te recomiendo esta web como referencia.

Bueno, y eso es todo. Como ves, nada que afecte en apariencia al funcionamiento normal de la web, pero que mejora su rendimiento.

Mensajes relacionados

Comentarios

Jorge Jorge

pudrete!

no... broma

muy buen blog !

Deja tu comentario

Deja tu comentario
Necesitas tener javascript activado para poder dejar comentarios

Identifícate en OboLog, o crea tu blog gratis si aún no estás registrado.

De esta forma, además, podrás mostrar tu imagen en los comentarios y no tendrás que rellenar tus datos cada vez.

Sobre esta anotación

obokaman

obokaman escribió esta anotación hace 3 años. En ella habla sobre Desarrollo Web.

1 persona ha dejado ya sus comentarios.

Tú también puedes dejar el tuyo.

Login

Comentarios

3ª Jornadas de Usabilidad en Barcelona ( o 'en casa del herrero...' III ) (blogdecaliche)
Mira quiero saber si no existen mas plantillas para mi blog.. y como le hiciste para poner la tuy...(07 ago)
Protocolo japonés antes de una reunión (Oriol)
Porque el tema compartir un BlueTooth y hacer intercambio de vcards, no se lleva?...(07 ago)
Mis primeros 800Km en moto (albertlg)
Ahora sólo nos falta el cursito ese de iniciación de "Línea Directa"... y a ...(07 ago)
Duendes (yessica soledad juar)
para mi es toda una mentira ...(03 ago)
Cink. Que álguien les cuente de qué va esto... (daniel)
me llega q algo sea para veneficiar a las demas personas...(26 jul)

Más comentados

Disco duro para tu ps2 (500)
Conectar un disco duro a tu Playstation 2, hacer copias de seguridad de tus juegos a ese disco ...
Esa bonita canción entre anuncio y anuncio (311)
Se llaman Múm y la canción se titula Green Grass of Tunnel.
Descripción y fuentes del upload PHP + AJAX con barra de progreso (121)
Código fuente y pequeña descripción de la implementación para conseguir un upload de archivos con PHP & Ajax
Català - Valencià (94)
Sobre les discusions que genera la denominació de la nostra llengua.
Audio en tus Posts II (88)
Pequeño tutorial acerca de cómo implementar el reproductor que ayer mismo presentaba en obokaman.com

Suscripción

Suscríbete al Feed RSS XML

También puedes suscribirte directamente con alguno de los siguientes enlaces:

  • Suscríbete en Bloglines
  • Suscríbete en Google