qxyhuiyuan 发表于 2020-6-25 17:02:23

【aixiagame首发】discuzx如何禁止直接访问图片地址与防盗链

你是否有个这样的困惑,我设置了防盗链,可是别人不用来路抓取,别人直接访问图片抓取,这样怎么办?
以下就是彻底的对图片禁止直接访问与防盗链的方法:
以下以Apache服务器的配置代码为例,如果是ng或者iis直接转换代码就可以。

经过很长一段测试,笔者发现,要先将拒绝直接访问放在防盗链的前面,否则会无效。
那如何拒绝直接访问图片呢?

一开始笔者是习惯用跳转禁止:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?aixiagame
RewriteCond %{HTTP_REFERER} !^http://(www\.)?aixiagame.*$
RewriteRule \.(gif|png|jpg|bmp|jpeg|ico)$ https://weibo.com/u/7430037395?topnav=1&wvr=6&topsug=1&is_all=1


很快发现无法实现,依然能直接访问图片地址,之后不用跳转,直接拒绝访问就成功了。
https://ae01.alicdn.com/kf/H9de9b1373f7d48d495cba8c7b17b90039.jpg
浏览器直接访问测试
https://ae01.alicdn.com/kf/H46b2e8e9fa524aa5935fe4eb389d9249n.jpg
https://ae01.alicdn.com/kf/Hf12de15469914fb6bf4f5750bb5b1d19j.jpg
最后,被拒绝访问。

图片防盗链就不多说了,这个许多教程一查就会。
以下是完整代码(禁止直接访问图片与图片防盗链):
注意:禁止URL直接访问图片必需要放在前面,否则失效

<IfModule mod_rewrite.c>
## 设置禁止URL直接访问图片与文件
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?aixiagame
RewriteCond %{HTTP_REFERER} !^http://(www\.)?aixiagame.*$
RewriteRule \.(gif|png|jpg|bmp|jpeg|ico)$ -
</IfModule>

<IfModule mod_rewrite.c>
## 设置图片防盗链
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !aixiagame.com
RewriteCond %{HTTP_REFERER} !aixiagame.co
RewriteCond %{HTTP_REFERER} !aixiagame.cc
RewriteCond %{HTTP_REFERER} !aixiagame.xyz
RewriteCond %{HTTP_REFERER} !aixgame.top
RewriteCond %{HTTP_REFERER} !www.aixgame.top
RewriteCond %{HTTP_REFERER} !www.aixiagame.xyz
RewriteCond %{HTTP_REFERER} !www.aixiagame.com
RewriteCond %{HTTP_REFERER} !www.aixiagame.co
RewriteCond %{HTTP_REFERER} !www.aixiagame.cc
RewriteCond %{HTTP_REFERER} !www.baidu.com
RewriteCond %{HTTP_REFERER} !www.baidu.cn
RewriteCond %{HTTP_REFERER} !baidu.com
RewriteCond %{HTTP_REFERER} !baidu.cn
RewriteCond %{HTTP_REFERER} !image.baidu.com
RewriteCond %{HTTP_REFERER} !www.google.com
RewriteCond %{HTTP_REFERER} !www.google.com.hk
RewriteCond %{HTTP_REFERER} !www.google.cn
RewriteCond %{HTTP_REFERER} !google.cn
RewriteCond %{HTTP_REFERER} !google.com
RewriteCond %{HTTP_REFERER} !google.com.tw
RewriteCond %{HTTP_REFERER} !google.com.hk
RewriteCond %{HTTP_REFERER} !www.163.com
RewriteCond %{HTTP_REFERER} !www.yahoo.com
RewriteCond %{HTTP_REFERER} !www.sogou.com
RewriteCond %{HTTP_REFERER} !pic.sogou.com
RewriteCond %{HTTP_REFERER} !www.soso.com
RewriteCond %{HTTP_REFERER} !soso.com
RewriteCond %{HTTP_REFERER} !www.so.com
RewriteCond %{HTTP_REFERER} !so.com
RewriteCond %{HTTP_REFERER} !image.so.com
RewriteCond %{HTTP_REFERER} !www.sina.com.cn
RewriteCond %{HTTP_REFERER} !www.msn.com
RewriteCond %{HTTP_REFERER} !www.msn.cn
RewriteCond %{HTTP_REFERER} !mail.qq.com
RewriteCond %{HTTP_REFERER} !cn.bing.com
RewriteRule .(gif|png|jpg|bmp|jpeg)$ htt【防解析去掉中括号】ps://ae01.alicdn.com/kf/Hccb78b73f68644f386f6126f525ac8b5K.jpg
</IfModule>


如果有什么新方法、好方法,欢迎大家留言,给予遇到的人帮助,先就这样吧,祝大家大吉大利、万事顺心。
页: [1]
查看完整版本: 【aixiagame首发】discuzx如何禁止直接访问图片地址与防盗链