有没有办法阻止图像显示

时间:2010-12-03 01:36:03

标签: php .htaccess

这是网址http://www.website.com/uploads/pvtimages/image.png

我不希望图像显示给任何人,甚至不是我,但可以下载

i ... e <a href="http://www.website.com/uploads/pvtimages/image.png">Download</a> i..e仅来自特定页面(download.php)

我希望保护该文件夹中的所有图片。

有可能吗?使用php或.htaccess或两者兼而有之?

3 个答案:

答案 0 :(得分:2)

是的,将以下标题放在.htaccess文件中:

<Files image.png>
Header set Content-Disposition attachment
</Files>

当然你也可以通过PHP发送这个标题,但在这种情况下,htacesss更有意义。但是,它只会阻止它显示在浏览器中。 每个人都可以通过链接下载它! 除非您为自己的网站添加密码保护等内容,否则无法真正保护图像。

您可以通过引用检查来阻止某些热链接 - 但这只是为了阻止愚蠢的网站管理员嵌入您的图片..它不会阻止真正想要您的东西的任何人。但如果那对你没问题......看看Allow/deny image hotlinking with .htaccess

答案 1 :(得分:1)

我似乎最近在回答这个问题...看,如果你不想通过URL访问某些东西,你不需要使用.htaccess或PHP。只是不要把它放在文档根目录中。

请参阅my answer here,其中说明了您应该使用的结构。然后,您可以使用PHP下载它;我的answer here解释了如何使用PHP下载文件。以这种方式做事更容易维护,更容易实现,更安全。

请注意,这不仅适用于图像等,还适用于您的PHP库以及其他任何内容。通常,我在文档根目录中有一个PHP文件(例如index.php),一些CSS,JS和一些图像。其他一切通常应该在其他地方。

答案 2 :(得分:0)

将此添加到您的.htaccess

RewriteEngine On

RewriteRule ^(?:uploads/pvtimages)\b - [F,L]

或者当然是从文档根目录中获取它。

这意味着您需要通过PHP提供图像。只需readfile()并发送正确的标题。