Página 1 de 1

Prevencion de Hotlinks con .htaccess  Tema Solucionado

Publicado: 13 Oct 2014, 20:53
por Nazcar
De todos es conocido que los hosting limitan la tasa de transferencia de las webs alojadas.Una de las cosas que hacen que coman ancho de banda,son los hotlinks,o que es lo mismo,otros webmasters que usan tus imágenes para ponerlas en sus webs, limitando aun mas la tasa de transferencia disponible en nuestros hostings. La solución para evitar eso es bien fácil con unas lineas en el .htaccess vamos ha ello.

Código: Seleccionar todo

RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpe [L]
Substituiremos mysite\.com por nuestro dominio. Dejarlo tal como esta la \ es importante,si no no funcionaria correctamente.La 3 linea mostrara una imagen que hayamos puesto nosotros que se muestre al intentar hacer un hotlink a nuestra web. Así siempre que una URL que no pertenezca a nuestro dominio y llame a ficheros puestos en la 3 linea jpe?g|gif|bmp|png mostrara esa imagen.Podemos poner tantos dominios que queramos permitir enlazar nuestras imágenes,en lineas similares a la 1 linea,siempre y cuando no sean subdominios del mismo dominio puesto que eso ya esta puesto en la 1 linea.

Si en lugar de una imagen queremos que se muestre un código 403 o prohibido. Modificaremos la 3 linea para que quede:

Código: Seleccionar todo

 RewriteRule .*\.(jpe?g|gif|bmp|png)$ - [F]
Con esa linea se comerán un error 403 :rofl:

Vamos hacer un resumen:

Prevención de hotlinks en un solo dominio o subdominio

Código: Seleccionar todo

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpe [L]
Prevención de hotlink permitiendo varios dominios:

Código: Seleccionar todo

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysitio\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?myotrositio\.net/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpe [L]
Ya Solo queda decir que la 1 linea la de RewriteEngine si ya la tenéis no hace falta que la pongáis otra vez,esa linea es la que nos activa el mod de reescritura (mod_rewrite) de nuestro servidor.

Aun así para los que no entiendan nada aquí un excelente link para generarlo automáticamente desde aquí