2016-06-08 110 views
1

最近我更改了我的網站的服務器。在我使用Apache服務器之前。現在我的網站在Nginx服務器上運行。這就是爲什麼我不能再使用.htaccess防止直接訪問PDF文件 - Nginx

我想通過在瀏覽器中輸入文件鏈接來阻止用戶打開一些pdf文件。我希望他們能夠通過點擊我網站上文件的鏈接來打開這些文件。到目前爲止,我使用了下面的代碼;它在防止盜鏈圖片方面效果很好,但它並不妨礙直接訪問pdf文件。

location ~ /folder/with/pdffiles/(.+\.(?:jpg|pdf|jpeg|gif|png|bmp|ic$ 

valid_referers none blocked server_names *.mydomain.com mydomain.* ~\.mydomain\.; 
     if ($invalid_referer) { 
     return 444; 
     } 
     try_files $uri @ghost; 
} 
+1

你可以複製你的位置指令的其餘部分嗎? – Will

回答

0

雖然你可以這樣做:

if ($http_referer = "") { return 403; } 

內,您的nginx的位置,如果條件不是做推薦的東西(見If is Evil)。

今天的標準做法是將受限制的文件放在網絡服務器根文件夾之外(不管它是什麼 - Apache或nginx),並通過服務器端腳本提供文件,可以做任何你想做的事 - 不僅檢查引用者,還可能是用戶會話或認證。