Plikiem .htaccess możesz całkowicie zabezpieczyć katalog wpisując w tym właśnie pliku: Deny from all.
Następnie możesz pobierać pliki za pośrednictwem samego php.
Wystarczy zdefiniować odpowiednie dla pliku nagłówki i odczytać plik.
<?php
header('Content-type: jakiś typ pliku'); header('Content-Disposition: attachment; filename="nazwa_pliku.rozszerzenie"'); ?>
To działanie możesz poprzedzić weryfikacją hasła. Jeżeli wszystkie pliki mają ten sam typ, ustawiasz go dla content-type. Jeżeli natomiast mają różne typy, możesz nadawać content-type dynamicznie na podstawie rozszerzenia pliku. W internecie są spisy typów mime. Bodajże właśnie na tym forum coś takiego jest.
Pozdrawiam.