Trucos para tu .htaccess: Como evitar el Hotlink

Primero seguramente son pocos los que saben que es el .htaccess pues bien aquí una explicación rápida:

Es un archivo de configuración en un servidor Web, y contiene comandos en el lenguaje del servidor que le indican cómo debe comportarse en ciertas situaciones. Alguno de los usos más comunes de un archivo htaccess son la restricción del acceso a determinados archivos o carpetas en Internet (o en una intranet) mediante el uso de contraseñas. Adicionalmente, los htaccess se usan para redirigir usuarios automáticamente, para bloquear o permitir el acceso al servidor a ciertas direcciones de IP, y para llamar páginas de error personalizadas en lugar de las páginas de error 404 standard del servidor. Los servidores Web Apache, y otros servidores que cumplimentan las normas del NCSA pueden usar htaccess.

El hotlink o Hotlinking es uno de los dolores más grande que vamos encontrar cuanto tenemos nuestra web en un servidor que estas pagando es común que al subir muchas imágenes varios usuarios las tomen para ponerlas por todos lados, si bien es complicado evitar esto gracias al .htaccess se puede evitar todo sabiendo que código colocar.

Por lo regular los .htaccess traen este código por default:

[sourcecode language="java"]
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</ifmodule>
[/sourcecode]

Se puede hacer de dos formas integrando todo de un solo golpe lo cual luego se hace confuso cuando tienes más de una modificación o simplemente separando los códigos que vamos a usar, ahora bien el código para evitar el hotlink es el siguiente:

[sourcecode language="java"]
<ifmodule mod_rewrite.c>
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://tublog.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://tublog.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.tublog.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.tublog.com/.*$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|png|bmp)$ – [F,NC,L]
</ifmodule>
[/sourcecode]

Ese código evita que se vean las imágenes que tenemos cargadas en nuestro servidor desde cualquier parte obviamente donde dice tublog.com va la dirección de tu web como la pida tanto con www como sin ella, pero cuando tus lectores usan servicios como Google Reader o FeedBurner obviamente usando el código anterior también esos servicios van a sufrir el bloqueo de imagen por eso se deben agregar para darles acceso así como también cualquiera otra web que quisieras que pueda hacer hotlink a tu web, para eso solo tenemos que agregar el código:

[sourcecode language="java"]
RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/view/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/m/view/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://[^/.]\.feedburner\.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://feeds2.feedburner.com/Taironcave$ [NC]
[/sourcecode]

Teniendo al final un código así:

[sourcecode language="java"]
<ifmodule mod_rewrite.c>
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://tublog.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://tublog.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.tublog.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.tublog.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/view/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/m/view/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://[^/.]\.feedburner\.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://feeds2.feedburner.com/Taironcave$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|png|bmp)$ – [F, NC, L]
</ifmodule>
[/sourcecode]

Pero también podemos usar el hotlink para promocionar nuestra web es fácil y créanme que hace enojar a mas de una personas la forma es simple, primero creamos la imagen que deseamos que aparezca en lugar de la imagen original, para evitar el consumo de ancho de banda por esta la podemos subir a Photobucket o algún otro servicio parecido, por ejemplo la mía es:

Y el código para hacer eso quedaría:

[sourcecode language="java"]
RewriteRule .*\.(gif|jpg|jpeg|png|bmp)$ http://direcciondelaimagen.com/imagen.gif [R,NC,L]
[/sourcecode]

Finalmente y después de tantos saltos tendremos un .htaccess así:

[sourcecode language="java"]
<ifmodule mod_rewrite.c>
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://tublog.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://tublog.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.tublog.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.tublog.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/view/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/m/view/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://[^/.]\.feedburner\.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://feeds2.feedburner.com/Taironcave$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|png|bmp)$ http://direcciondelaimagen.com/imagen.gif [R,NC,L]
</ifmodule>
[/sourcecode]

Como ven después de meter tanto código podremos ahorrar una buena cantidad de ancho de banda en mi caso tenía un consumo por hotlink aproximado de casi 12 gb al mes, gracias a la edición del .htaccess me los estoy ahorrando. Si tiene dudas ahí están los comentarios si no también les dejo mi código .htaccess para que lo vean.

[sourcecode language="java"]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://taironcave.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://taironcave.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.taironcave.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.taironcave.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/view/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/m/view/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://[^/.]\.feedburner\.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://feeds2.feedburner.com/Taironcave$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|png|bmp)$ http://i55.photobucket.com/albums/g154/Dark_Tairon/no-hotlink-bitches.gif [R,NC,L]
</IfModule>
[/sourcecode]

Artículos relacionados

This entry was posted on Monday, June 8th, 2009 at 16:47 pm and is filed under Blog, Internet, Tutoriales. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

4 Responses to “Trucos para tu .htaccess: Como evitar el Hotlink”

  1. Natasha Says:

    Hola muy bueno tu aporte, pero me gustaría saber en que parte de la plantilla se pegaría el código es que soy muy novata en esto y aunque aun no pago por mi pagina web lo estoy pensando hacer en un futuro y esta informacion esta muy interesante, tambien seria bueno saber si este codigo se puede utilizar en mi cuenta blogger, muchas gracias ^^

  2. DarkTairoN Says:

    no va en la plantilla va en tu archivo .htaccess tienes que tener un host con acceso a tu cpanle o plesk cual sea el caso y no funciona en blogger por que simplemente no tiene utilidad en blogger.

  3. Gayer Says:

    Gracias.. tanto el de evitar el hotlinking como los trucos del htacess me han servido y funcionan ok

    gracias!!

  4. Ricardo Says:

    amigo fenomenal el codigo mil gracias

    estoy sufriendo me estas supendiendo la cuenta si tienes algunos otros consejos los resivo con mucho agrado mi msn es ric-once0417@hotmail.com

    si tienes algo para aconsejarme lo resivo estoy en problemas

    mil gracias

    funciona de maraviilla!

Comentarios