При перенаправлении отсюда мне необходимо предотвратить доступ к файлам PDF
(или любым другим), когда кто-то обращается к нему с помощью прямого URL-адреса.
Проблема
Скажем, у вас был файл PDF, который вам понравился посетителям на вашем собственном сайте для загрузки.
Однако, если кто-то должен был скопировать эту ссылку и вызвать ее непосредственно из окна браузера, или если бы они разместили ссылку на ваш PDF файл на другом веб-сайте, тогда документ не будет доступен. По умолчанию это так.
Мне удастся скрыть путь к файлу PDF в адресной строке, а сформированный url - http://localhost/myproject/web/viewer.php?id=11&name=sample.pdf
, но в консоли можно увидеть полный путь, например http://localhost/myproject/document/11/sample.pdf
.
Этот код успешно перенаправляется при повторной загрузке второй страницы, но не тогда, когда я выбираю Open in new tab
с консоли.
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC]
RewriteCond %{REQUEST_URI} !hotlink\.(pdf) [NC]
RewriteRule .*\.(pdf)$ http://google.com/ [NC]
Используется под кодом в .htaccess
для предотвращения доступа
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
RewriteRule \.(pdf)$ - [F]
Как-то это не работает точно. Он показывает сообщение с запрещенным файлом, только если я CTRL+SHIFT+R
иначе используя URL-адрес файла, я все еще могу получить к нему доступ.
Я хочу, чтобы файл pdf отображался как http://localhost/myproject/document/11/sample.pdf
непосредственно в строке url
Вы можете хранить файлы PDF не в папке webroot
и возвращать его содержимое, используя PHP. Например, для URL-адреса пользователя будет выглядеть так:
http://localhost/myproject/document.php? hash = some_hash '
и на файле document.php
вы получите хэш документа из функции $_GET
parametr use file_get_contents
. Также в этом случае вы можете разрешить доступ только один раз
Надеюсь, это поможет
Если у вас есть доступ к базе данных, возможно, вы можете сохранить файл /s в поле blob. Таким образом, вы можете легко написать код, чтобы защитить файл, как вам нравится.