【问题标题】:Prevent an image file from DIRECT URL ACCESS?防止图像文件被直接 URL 访问?
【发布时间】:2023-02-16 19:13:52
【问题描述】:

我想阻止人们通过在浏览器地址栏中输入 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]

【讨论】:

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