Chroń dokumenty PDF przed bezpośrednim dostępem w adresie URL

Chcę chronić plik pdf przed bezpośrednim połączeniem, ale zamiast tego moi zalogowani użytkownicy będą mieli do niego dostęp. Mam link, który obecnie przechodzi do funkcji javascript, która publikuje formularz: $ ('nameofdoc'). SetProperty ('value', doc); document.getElementById ('sendme'). submit ();

gdzie sendme jest nazwą formularza i nazwy dokumentu, indeksu dokumentu, który chcę wyświetlić.

Następnie przechodzi do pliku 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)

To wszystko działa poprawnie, ładuje plik i wyświetla plik pdf. Nie mogę ochronić katalogu przed bezpośrednim linkowaniem - np. Www.mydomain.com/pathToPdf/pdfname.pdf

Myślałem o użyciu .htaccess do ochrony katalogu, ale jest on na współużytkowanym hoście, więc nie jestem pewien co do bezpieczeństwa, a poza tym, kiedy próbowałem, nie mogę go uruchomić.

Każda pomoc byłaby świetna, ponieważ jest to mój czwarty dzień próby naprawienia tego.

dzięki

Aktualizacja

Bardzo ci pomogłem, ale jeszcze nie jestem.

Mam plik .htaccess, który teraz uruchamia inny plik php, gdy żądany jest plik PDF z katalogu:

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

Gdy plik fileopen.php wyskakuje, nie można otworzyć pliku 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;
 }

Dane wyjściowe nie zostały znalezione przy użyciu ścieżki /documents/6/Doc1.pdf, a plik to Doc1.pdf

ale plik istnieje i jest w tym direcotry - wszelkie pomysły?

OK Z przyjemnością informuję, że Jaroslav naprawdę pomógł mi rozwiązać problem. Jego metoda działa dobrze, ale trudno jest ustawić wszystkie rzeczy w katalogu. W końcu spędziłem kilka godzin bawiąc się kombinacjami, aby to działało, ale zasada, którą dał, działa dobrze. Dzięki

questionAnswers(3)

yourAnswerToTheQuestion