防止图片文件被直接访问的方法?

4
我希望防止人们通过在浏览器地址栏中输入URL来获取我网站的图像,同时允许他们在访问网页时查看图像。
我尝试了以下.htaccess代码:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
RewriteRule \.(gif|jpg|png)$ - [F]

然而,这不仅限制了直接URL访问,而且在访问网页时也隐藏了所有图像。现在我的网站看起来像是一堆有很多图片空白的文本页面。
有人能告诉我为什么上述的 .htaccess 不起作用吗?
我在这里找到它:(htaccess) 如何防止文件被直接访问?,但我没有足够的声望在该帖子中提问,因为我只是为了发布这个问题而创建了这个帐户。
谢谢。

1个回答

1
如果您直接访问图像,则返回403(禁止),但允许在网站上显示它们。它可以工作,但测试可能会棘手/误导。请阅读questions/10236717/htaccess-how-to-prevent-a-file-from-direct-url-access了解更多信息。
另一种防止热链接的方法如下(来自:htaccess generators)。
RewriteEngine on  
RewriteCond %{HTTP_REFERER} !^$  
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]  
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接