У меня есть .doc
и .zip
файлы в каталоге загрузки на моем сервере. кто бы ни посетил мою страницу сайта ( download-file.php)
только те пользователи должны иметь возможность загружать эти файлы, а другие не должны.
Я пытаюсь достичь выше, но не повезло …
Я все еще могу указать адрес прямого файла ( http://example.com/sample.doc
) в браузере, и я могу загрузить, что я не хочу … кто-то другой, дающий ссылку на вышеупомянутый файл на любом веб-сайте, тогда также загрузка не должна произойти.
Может ли кто-нибудь поделится какой-то идеей … как бы я этого добился.
Заранее спасибо.
В файле htaccess в корне вашего документа вы можете включить эти правила:
RewriteEngine On # you can add whatever extensions you want routed to your php script RewriteCond %{REQUEST_URI} \.(doc|zip|pdf)$ [NC] RewriteRule ^(.*)$ /download-file.php?filename=$1 [L]
Затем в download-file.php
вы можете отображать все, что вам нужно для отображения, и ссылку для загрузки, которую ваш скрипт php может сразу же обслуживать файл с помощью файла read php () (см. Ссылку для примеров)
Вы должны запретить доступ к каталогу файлов и предлагать только загруженные версии PHP (пример с PDF-файлами):
data / .htaccess (googled):
deny from all
download.php:
/* User access check here, prior to the following code */ $name = 'MyPDF.pdf'; $filename = 'data/pdf_12345.pdf'; header('Content-Disposition: attachment; filename="'.$name.'"'); header("Content-Type: application/pdf"); header("Content-Length: " . filesize($file)); fpassthru($filename)
Конечно, вы можете установить разные имена файлов для каждого пользователя и каждого запроса, например download.php?file=MyPDF
Вы должны иметь возможность ограничить доступ людей к вашему контенту, используя метод, аналогичный следующему коду:
RewriteCond% {HTTP_REFERER}! ^ Http: //your_domain.com/.*$ [NC]
RewriteCond% {HTTP_REFERER}! ^ Http: //your_domain.com$ [NC]
RewriteCond% {HTTP_REFERER}! ^ Http: //www.your_domain.com/.*$ [NC]
RewriteCond% {HTTP_REFERER}! ^ Http: //www.your_domain.com$ [NC]
RewriteRule. *. (Jpg | jpeg | gif | png | bmp | pdf | doc) $ http://your_domain.com/no_access.php [R, NC]
Это позволит людям напрямую связывать изображения, PDF-файлы или документы с вашего сайта. Затем файлы с этими расширениями будут доступны только с вашего сайта. Если кто-то пытается напрямую связать или получить доступ к вашим файлам, они будут испытывать все, что вы выберете для них, чтобы увидеть (что вы помещаете в no_access.php).
Если у вас есть выделенный сервер, самый простой и, на мой взгляд, самый безопасный способ – хранить файлы вне / var / www /
Например, вы можете создать папку / var / webdocs / и сохранить их там.