Всего лишь несколько примеров: вы можете поместить свои файлы вне корневого каталога документов веб-сервера или в каталог, защищенный файлом .htaccess с правилом «запретить все»;затем вы доставляете файлы с помощью пользовательской функции PHP, которая устанавливает правильные заголовки (тип mime, размер файла и т. д.) и возвращает файл.
Вы можете создавать ссылки с уникальными идентификаторами на основе хэшей MD5 или SHA1 - aПравило mod_rewrite указывает идентификатор на ваш файл PHP, вы ищете идентификатор в базе данных и проводите проверку времени, например,
example.com/downloads/73637/a8d157edafc60776d80b6141c877bc6b
переписывается в
example.com/dl.php?id=a8d157edafc60776d80b6141c877bc6b&file=73637
Вот пример выполнениято, что вы хотите с nginx и PHP: http://wiki.nginx.org/HttpSecureLinkModule