[英]Prevent direct PDF file access from URL
從此處重定向,當有人使用直接URL訪問PDF
(或任何其他)文件類型時,我需要阻止對其進行訪問。
問題
假設您有一個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仍然可以訪問它。
我想防止直接在網址欄中顯示為http://localhost/myproject/document/11/sample.pdf
的pdf文件
如果您有權訪問數據庫,則可以將文件存儲在Blob字段中。 這樣,您可以輕松編寫代碼以保護自己喜歡的文件。
您可以將PDF文件不存儲在webroot
文件夾中,並使用PHP返回其內容。 例如,用戶URL將類似於:
http://localhost/myproject/document.php?hash = some_hash`
在文件document.php
您將使用file_get_contents
函數從$_GET
參數獲取哈希值。 同樣在這種情況下,您只能允許一次訪問
希望對您有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.