Impedir Hot-linking en nuestro sitio con .htaccess


¿Que es el Hot-linking?

Hot-linking es un término que se usa en Internet. Indica que alguien está usando un enlace a una imagen que está archivada en otro sitio web, en lugar de guardar una copia de la imagen en el sitio web en el que se mostrará la imagen. Por ejemplo, en lugar de guardar una imagen .gif y cargarla en su propio sitio web, la persona usa un enlace de tipo absoluto hacia la imagen, semejante a http://sitioweb.com/imgen.gif, en lugar de un enlace de tipo relativo.

El principal problema del hot-link es que al usar las imágenes externas (las nuestras) consumen nuestsro ancho de banda. Vamos a ver un ejemplo de como evitarlo.

Código HTML:
# BEGIN Anti HotLink
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://subdominio.diviertenet.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://subdominio.diviertenet.com$      [NC]
RewriteCond %{HTTP_REFERER} !^http://diviertenet.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://diviertenet.com$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.diviertenet.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.diviertenet.com$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.google.es/reader/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://feeds.feedburner.com/diviertenet.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://maps.google.es.*$      [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ http://www.diviertenet.com/nohotlink.gif [R,NC,L]
</IfModule>
# END Anti HotLink
Con este ejemplo, todos los referers diferentes a los indicados, cuando vayan a acceder a alguna imágen tipo “jpg|jpeg|gif|png|bmp” serán redirigidos a diviertenet.com/nohotlink.gif y por tanto no verán nuestras imágenes.

Ahora vamos a explicar brevemente las lineas que estamos usando:

En cada línea “RewriteCond %{HTTP_REFERER}” ponemos el host desde el cual permitimos el acceso. Por eso usamos el signo de exclamación “!” porque es el signo de negación. Básicamente la linea dice “si vienes de un sitio diferente a ….”

Si os fijais a parte de poner nuestro dominio, también he puesto el google-reader y alguno más porque sino, desde allí, no cargarían las imágenes.

RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ Con esta línea indicamos para que extensiones será efectiva la regla y la dirección a la que vamos a redirigir.