Как я могу разрешить пользователям доступ к ссылке для скачивания с указанной веб-страницы c с HTACCESS в php - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть ссылка для скачивания на веб-странице. Я хочу ограничить эту ссылку для скачивания от прямого попадания. Ссылка будет работать только в том случае, если пользователь пришел по указанному c URL-адресу реферера.

1 Ответ

0 голосов
/ 24 февраля 2020

Из вашего php кода вы можете сделать это, как показано ниже

<a href="download.php" >Download File</a>

вашей загрузки. php

<?php 
if($_SERVER["HTTP_REFERER"] === 'http://www.yourwebsite/yoururl') { 
    header('Content-Description: File Transfer');
    header('Content-Type: application/force-download');
    header("Content-Disposition: attachment; filename=\"" . basename($name) . "\";");
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($name));
    ob_clean();
    flush();
    readfile("your_file_path/".$name); //showing the path to the server where the file is to be download
    exit;
} else {
    echo "your can't download file."; 
}
?>

с использованием .htaccess

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://www\.yourwebsite/yoururl/ [NC]
RewriteRule ^index\.php - [F]

Это отправит 403 Запрещено, когда кто-то перейдет по ссылке на ваш /index.php URL со ссылающегося сайта.

Всегда существует риск того, что браузеры не отправят HTTP реферер, если пользователь отключил это, но это должно работать в большинстве случаев.

...