我刚才问过这个问题,但没有得到答案。我希望再次发布它是可以的。
我将用户上传的ZIP文件存储在我的服务器上。除了通过站点链接之外,没有人能够访问这些文件。
例如:https://www.example.com/uploads/1.zip
如果我提供该文件的链接,服务器应该允许它,但是如果有人试图通过在浏览器地址栏中输入它来直接访问它,它应该会失败。
实现这一目标的最佳方法是什么?
我试过这个(在htaccess中)。它会阻止直接访问,但也会破坏链接:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
RewriteRule \.(zip)$ - [F]
我还考虑了URL中的会话令牌,但我的理解是,有效会话的人仍然可以直接访问。
如果有帮助,这些文件将始终位于自己的“上传”目录中。
从这里阅读其他问题看来,这似乎是不可能的。如果是这样,是否有一种不同的解决方案可以将文件从猜测文件名的人手中移除?