Letakkan file di luar webroot. Kemudian menggunakan PHP, lewati file melalui skrip. Dengan begitu tidak ada yang dapat menautkan ke file secara langsung dan mengabaikan kontrol Anda. (Tentunya pastikan skrip yang melakukan ini hanya setelah memverifikasi bahwa pengguna memiliki izin untuk mengambil file itu).
Contoh PHP:
<?php
if (!isset($_SESSION['authenticated'])) {
exit;
}
$file = '/path/to/file/outside/www/secret.pdf';
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
?>