【问题标题】:Prevent an image file from DIRECT URL ACCESS?防止图像文件从直接 URL 访问?
【发布时间】:2016-06-28 05:55:13
【问题描述】:

我想防止人们通过在浏览器地址栏中输入 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) How to prevent a file from DIRECT URL ACCESS? 找到它,但我没有足够的声誉在那个帖子中提问,因为我刚刚创建了这个帐户来发布这个问题。

谢谢。

【问题讨论】:

  • 如果试图加载图像的页面位于 localhost 或 www.localhost.*,该 .htaccess 规则将允许直接访问。我可以看到您引用的问题中建议了这一点,并且可能适用于该 OP,但是您自己的站点是位于 localhost 还是 www.localhost.*?这可能是问题所在。

标签: php apache .htaccess http


【解决方案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]

【讨论】:

    猜你喜欢
    • 2023-02-16
    • 1970-01-01
    • 2016-03-04
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    相关资源
    最近更新 更多