Защита документов PDF от прямого доступа в URL

Я хочу защитить PDF-файл от прямой ссылки, но вместо этого пользователи, вошедшие в систему, смогут получить к нему доступ. У меня есть ссылка, которая в настоящее время идет на функцию JavaScript, которая отправляет форму: $ ('nameofdoc») .SetProperty (»значение', Док); document.getElementById (»отправьте меня').Отправить();

где sendme - это имя формы и name of doc - индекс документа, который я хочу отобразить.

Это тогда идет в файл php:

 $docpath = $holdingArray[0].$holdingArray[1];

 $file = $holdingArray[0]; //file name
 $filename = $holdingArray[1]; //path to the file]
 header( 'Location:'.$docpath ) ;
 header('Content-type: application/pdf');
 header('Content-Disposition: attachment; filename="'.$filename  . '"');
 readfile($filename)

Все это прекрасно работает, он загружает файл и выводит PDF. Что я могу'Сделать это - защитить каталог от прямых ссылок - например, www.mydomain.com/pathToPdf/pdfname.pdfI '

мы думали об использовании .htaccess для защиты каталога, но этона общем хосте, поэтому яя не уверен насчет безопасности и в любом случае, когда яЯ пытался, я могузаставить его работать.

Любая помощь была бы отличной, так как это мой четвертый день попытки исправить это.

Спасибо

UpdateI»

У меня была большая помощь, спасибо, но яЯ еще не совсем там. Я

у нас есть файл .htaccess, который теперь запускает другой файл php при запросе pdf из каталога:

 RewriteEngine on
 RewriteRule ^(.*).(pdf)$ fileopen.php

Когда файл fileopen.php запускается, он не может открыть PDF

 $path = $_SERVER['REQUEST_URI'];
 $paths = explode('/', $path);
 $lastIndex = count($paths) - 1;
 $fileName = $paths[$lastIndex]; 

 $file = basename($path);

 $filepath = $path;

 if (file_exists($file)) {
     header( 'Location: http://www.mydomain.com'.$path ) ;
     header("Content-type: application/pdf");
     header("Content-Disposition: attachment; filename=".$file);
     readfile($filepath);

 }else{
     echo "file not found using path ".$path." and file is ".$file;
 }

Выходные данные - файл не найден с использованием пути /documents/6/Doc1.pdf, а файл - Doc1.pdf.

но файл существует и находится в этой директории - есть идеи ??

ХОРОШО, Я'Я рад сообщить, что Ярослав действительно помог мне разобраться в проблеме. Его метод работает хорошо, но сложно выстроить все элементы каталога. В конце я потратил несколько часов, играя с комбинациями, чтобы заставить это работать, но принцип, который он дал, работает хорошо. Спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос