Пользователи, которые входят в административную область веб-сайта, должны иметь возможность загружать файлы, которые были ранее загружены другими администраторами. Открытый доступ к этим файлам запрещен.

Файлы хранятся в каталоге с именем uploaded-files, и в этой папке есть файл .htaccess:

<FilesMatch "\.(pdf|doc|docx|ods|xls|xlsx|ppt)$">
    Order deny,allow
    Deny from all
    Allow from localhost
</FilesMatch>

Кажется, это работает нормально .. Публика не может ссылаться на файлы. Проблема в том, что зарегистрированные администраторы не могут ссылаться на них, потому что:

<a href"uploaded-files/abc.pdf">download</a>

Выдает 403 запрещенных при нажатии. Таким образом, кажется, что файлы php / html на сервере также не могут получить доступ к файлам.

Что я делаю неправильно? Конечно, есть простой способ разрешить людям на сервере скачивать файлы по ссылке, но при этом запретить доступ для всех?

Я пробовал хранить файлы вне public_html, но я тоже не могу предоставить ссылку на это место :(

1
drummer-alert 3 Фев 2014 в 17:27

1 ответ

Лучший ответ
  1. Вы должны хранить эти файлы вне вашего DOCUMENT_ROOT.
  2. Ссылки для скачивания должны быть через файл PHP, например. <a href"http://domain.com/download-files.php?file=abc.pdf">download abc.pdf</a>
  3. PHP-код может проверять часть аутентификации, разрешенный хост и т. д. Если все проверки пройдены, верните содержимое PDF с правильным типом КОНТЕНТА в браузер.
1
anubhava 3 Фев 2014 в 17:30
1
Спасибо, и download.pdp может получить доступ к файлам вне корня документа, потому что он использует readfile вместо <a href и т. Д. - это правильно?
 – 
drummer-alert
3 Фев 2014 в 17:41