Zanimljivo pitanje i mene je nesto slicno zanimalo. Mislim da bi jedno od jednostavnijih resenja bilo da sve fajlove (njihove url-ove) cuvas u jednoj tabeli gde bi svaki fajl imao svoj jedinstveni id. Na ovaj nacin bi tvoja download skripta skrivala pravu putanju:
http://www.nesto.com/download.php?file_id=1034
Pretpostavljam da sve ovo radis iz razloga da zelis da korisnik prodje kroz neke odredjene stranice pre nego sto moze da pokrene download fajla. Neko jednostavno resenje bi bilo da na nekoj nekoj od tih 'prethodnih' stranica setujes $_SESSION promenjivu recimo:
if (!isset($_SESSION['allow_download'])) {$_SESSION['allow_download'] = TRUE;}
a onda je proveris u download.php i dozvaljas download samo ako je TRUE. Nakon toga je vracas nazad na FALSE. Na ovaj nacin, samo korisnik koji dolazi sa odredjene stranice sa tvog sajta ima pravo da dobije fajl. Svako ko pokrene download.php?file_id=1034 nece dobiti nista, to jest, moze biti prosledjen na neku 'prethodnu' stranicu da ispravno dodje do fajla. Ovo bi bilo neko jednostavno resenje, bez pracenja IP adresa, sto znaci, neko malo iskusniji i uporniji bi ipak mogao doci do fajla.