Я на самом деле только что использовал
<FilesMatch .zip>
order deny, allow
deny from all
</FilesMatch>
в дополнение к использованию этого небольшого PHP-скрипта при аутентификации пользователя
if($_POST['subDownload']){
if(file_exists('./photo_sets/photo_set_1.zip')){
$FileName = "./photo_sets/photo_set_1.zip";
header("Content-Type: application/x-zip-compressed");
header("Content-Length: " . filesize($FileName));
header("Content-Disposition: attachment; filename=\"$FileName\"");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
readfile($FileName);
}
кажется, добивается цели ...