A todos nos ha pasado. Estás navegando por Internet cuando ves una de tus imágenes en otro sitio. Al instante, te molesta que la persona no te haya pedido permiso o que ni siquiera te dé crédito por la imagen. Quizá te preguntes: “¿Qué hay que hacer para evitar que esto vuelva a ocurrir?”. Existen aplicaciones de hotlinking, pero normalmente hay que pagar por la licencia. Aquí tienes dos maneras de evitar que la gente haga hotlinking de tus imágenes.

Modificar el archivo .htaccess

La mejor manera de hacer esto es modificando su archivo .htaccess. Debe estar en el directorio principal del sitio web. Ábralo usando su Editor de Texto para añadir el siguiente código:

RewriteEngine onRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http://(www.)?yourdomain.com(/)?.*$ [NC]RewriteRule .*.(gif|jpe?g|png|bmp)$ [F,NC]

RewriteCond permitirá a los sitios (la URL de su propio sitio debe estar aquí) que puedan utilizar las imágenes de su sitio. Si desea permitir a los motores de búsqueda la posibilidad de que sus imágenes aparezcan en la función de búsqueda de imágenes, añada el siguiente código:

RewriteCond %{HTTP_REFERER} !google. NC] RewriteCond %{HTTP_REFERER} !msn. NC] RewriteCond %{HTTP_REFERER} !yahoo. NC]

Probablemente deberías pensar en añadir también tu feed RSS, para que tus imágenes se muestren en tu RSS.

RewriteRule son los archivos que no quieres que la gente haga hotlinking.

Usar código PHP

Si usted prefiere usar PHP en su lugar. Cree un nuevo archivo PHP, y el siguiente código le permitirá hacer lo mismo que modificando el archivo .htccess:

<?php$dir=’nombre-secreto-desconocido-aquí/’;if((!$archivo=ruta real($dir.$_GET[‘archivo’]))|||strpos($archivo,ruta real($dir))!==0|||substr($archivo,-4)==’.php’){header(‘HTTP/1.0 404 Not Found’);exit();}$ref=$_SERVER[‘HTTP_REFERER’];if(strpos($ref,’http://www.yoursite.com/’)===0|||strpos($ref,’http’)!==0){$mime=array(‘jpg’=>’image/jpeg’,’png’=>’image/png’,’bmp’=>’image/bmp’, ); $stat=stat($file); header(‘Content-Type:’.$mime[substr($file,-3)]); header(‘Content-Length:’.$stat[7]); header(‘Last-Modified:’.gmdate(‘D, d M Y H:i:s’,$stat[9]).’ GMT’); readfile($file); exit();}header(‘Pragma: no-cache’);header(‘Cache-Control: no-cache, no-store, must-revalidate’);include($file.’.php’);?>

Lo primero que hay que hacer es sustituir “nombre-secreto-desconocido-aquí” por algo que nadie, salvo a quien quieras dar acceso, pueda adivinar. Asegúrese de crear un directorio con el mismo nombre. Donde dice“http://www.yoursite.com/

“, sustitúyalo por la URL de su propio sitio web. Añade las extensiones de imagen que no quieras permitir el hotlinking donde veas jpg, png y bmp. Cualquier archivo que no quiera permitir el hotlinking, colóquelo en el directorio secreto.

La mejor y más fácil manera de evitar que la gente de hotlinking sus imágenes es mediante la modificación del archivo .htaccess. Es rápido y sencillo comparado con codificarlo con el método PHP. Sin embargo, cualquier forma depende de ti. Por otro lado, el hotlinking puede ser maravilloso para la optimización de los motores de búsqueda (SEO), por lo que es posible que no quieras ser demasiado estricto en esto si estás practicando SEO. Sin embargo, realmente depende de ti cómo manejes el hotlinking y esto te ayudará a hacerlo.

Nota del editor

: El método anterior funciona si y sólo si las imágenes están alojadas en su propio servidor. Si usted está utilizando los servicios de terceros como Amazon S3, los métodos anteriores no funcionará.