2016-06-08 407 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),并通过服务器端脚本提供文件,可以做任何你想做的事 - 不仅检查引用者,还可能是用户会话或认证。