ARTICULOS

Combatir hotlinking con .htaccess

Autor: Leandro D´Onofrio (http://www.leandrodonofrio.com) - 30/06/2007
Esta obra está bajo una licencia de Creative Commons

Hace ya unos cuantos días dos blogs del lejano oriente (uno de china y otro de allí cerca) me andaban robando ancho de banda no con una, ni dos sino con 22 imágenes alojadas en el servidor. En otras palabras, estos dos blogs hacen hotlinking. Y eso no es legal. Asi que hoy buscando una solución entre mis marcadores, llegué a un artículo [en ingles] en los foros de Joomla! que explica de manera sencilla como combatir el hotlinking usando el .htaccess, el cual voy a traducir de manera libre:

¿Cómo bloqueo el hotlinking en mis imágenes utilizando .htaccess?

1. Crea una imagen jpeg llamada no_hot_link.jpe. Nota que la extensión es .jpe , esto es intencional y muy importante. Una vez creada ponla en tu carpeta de imágenes.

2. Abre el  .htaccess y escribe estas líneas de código:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?tu_sitio\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /imagenes/no_hot_link.jpe [L]

De esta forma cuando haya una peticion externa de una imágen jpg/jpeg/gif/bmp/png alojada en tu sitio, se mostrará el sustituto no_hot_link.jpe.

Blockear el hotlinking de dominios específicos

De la manera anterior bloqueamos las imágenes de cualquier sitio externo, aunque podemos hacerlo para dominios específicos:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?blogspot\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?myspace\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?livejournal\.com/ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/no_hot_link.jpe [L]

Asi hacemos que otros sitios alojados en blogspot, myspace o livejournal no puedan robarnos ancho de banda. La cantidad de dominios es ilimitada, sin embargo el último no debe poseer la bandera la condición OR.

Mostrar Error 403 [Forbidden] en vez de una imagen:

Tan solo debemos cambiar la última línea por:

RewriteRule .*\.(jpe?g|gif|bmp|png)$ - [F]

Finalmente algunos se preguntaran porque es importante que la imagen sustituta sea .jpe . A pesar que en el artículo no lo explica, es cuestión de lógica. Estamos estableciendo que no se pueden mostrar imágenes con cierto formato en otro sitio. Si hacemos eso, por lo tanto, no podremos mostrar una imagen sustituta con los formatos jpg/jpeg/gif/bmp/png , es por eso que se busca otro formato de imagen para mostrar [jpe].

 

Más artículos sobre Servidores

1. Instalación de phpdev en Windows
2. Configurar IIS para ejecutar WAP
3. ¿Qué es .htaccess?
4. FoxServ: paquete instalador para Windows
5. Combatir hotlinking con .htaccess
6. Redirección 301
7. Active Server Pages sobre Apache
8. Instalación del Personal Web Server
9. Enlaces usables en nuestro sitio
10. Todo sobre el archivo robots.txt
Más artículos...

Otros artículos...

ASP Generador de claves aleatorias
phpBB phpBB: Administración de los Foros
PHP Geolocalización en tu página web
ASP Paginar resultados cada X registros
PHP Contador de visitas sin cookies
PHP Webs dinámicos con PHP: Introducción
Java Script Fecha y hora con JavaScript
PHP Tiempo de carga de una página PHP
HTML "Includes" html con Frontpage
PHP Huevos de Pascua en PHP
Más artículos...