A la técnica descrita . en paneles de control como cPanel le llaman "hotlink" .. y nivel de configuración de Apache (servidor HTTP) y sus .htacces se refiere a limitar el acceso a ese directorio "deny all .. allow from tu_ip_dominio" o similar ..
Vía PHP puedes hacer un script que llame a tu archivo bajo una llamada tipo:
descargar.php?archivo=tal.tal
Código PHP:
<?
$ruta_absoluta_archivos="/var/nose/archivos"; // o "c:\nose\archivos"
header ("cabeceras HTTP para descagar"); // más info en [url]www.php.net/header[/url]
readfile($ruta_absoluta_archivos.$_GET['archivo']);
?>
El caso es que coloques tus archivos fuera de tu "document_root" para que no queden acesibles vía llamada por el URL:
http://www.tal.tal/archivos/tal sino que sólo ese script tuyo sea el que pueda pedir el archivo.
A su vez . como tienes control bajo tu scirpt de cuando se entrega el archivo .. puedes ver cosas como el "HTTP_REFERER" o IP del cliente que solicita el archivo o usar sesiones .. cookies .. etc para validar quien descarga el archivo.
Un saludo,