Назад | Перейти на главную страницу

Запретить запросы хотлинкинга с помощью mime

Я пытаюсь не допустить, чтобы люди ссылались на файлы PDF и DOC. Обычно я бы подошел к этому с помощью правила .htaccess следующим образом:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.com/.*$ [NC]
RewriteRule \.(pdf|doc)$ /home/ [R=302,L]

Однако многие из этих файлов связаны с помощью скриптов php, таких как filedownload.php? Id = 5, которые затем запускают загрузку файла PDF / DOC. Есть ли способ предотвратить горячие ссылки на эти файлы через mime выводимого файла? по-другому?

edit - добавлен этот источник, чтобы показать, как называются файлы:

header("Pragma: public"); 
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=\"".basename($fn)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$fs);
echo $upload["file_contents"];
exit();

Я думаю, что ваше правило перезаписи не будет знать, какой у файла mime-тип, поскольку на этом этапе ни один код ответа не будет выполнен. Я думаю, что лучшей альтернативой в этом случае было бы добавить проверку реферера внутри вашего php-кода и перенаправить оттуда, если реферер не из вашего домена.