ubuntu 16.04.3上apache 2.4.18通过HTTP_REFERER阻止图片盗链

最近偶尔碰到网站的流量被消耗尽的情况,已经影响到自己的使用了。怀疑网站图片,数据等被盗链,导致流量被消耗。

ubuntu 16.04.3apache 2.4.18防止网站图片被盗链的方法如下:

首先是在根目录下创建一个.htaccess,如果已经有了,直接把下面的代码添加到.htaccess尾部即可。

#阻止盗链
<IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_REFERER} !^$ [NC]
        RewriteCond %{HTTP_REFERER} !google.com [NC]
        RewriteCond %{HTTP_REFERER} !baidu.com [NC]
#       微软必应
        RewriteCond %{HTTP_REFERER} !bing.com [NC]
#       谷歌翻译
        RewriteCond %{HTTP_REFERER} !translate.googleusercontent.com [NC]
 
        RewriteCond %{HTTP_REFERER} !mobibrw.com [NC]
        RewriteCond %{HTTP_REFERER} !miniab.com [NC]
#       跳转到服务器首页
        RewriteRule .*.(gif|jpg|png|zip|gz|tar|pdf)$ mobibrw.com [R,NC,L]
#       服务器返回403禁止访问
#       RewriteRule .*.(gif|jpg|png|zip|gz|tar|pdf)$ - [F]
</IfModule>

简单的解释下每条语句:

RewriteCond %{HTTP_REFERER} !^$ [NC]

允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示。一般而言,这是可选的,不过,建议这么设置,如果强迫必须具有“HTTP_REFERER”才能访问,可能会带来某些问题,比如说在用户通过代理服务器访问时。

RewriteCond %{HTTP_REFERER} !google.com [NC]

设置允许访问的HTTP来源,包括我们的站点自身、GoogleBaidu等。这个可以添加多条,目前我们配置只有自身还有谷歌百度等常用的搜索引擎的访问权限。

RewriteRule .*.(gif|jpg|png|zip|gz|tar|pdf)$ mobibrw.com[R,NC,L]

定义被盗链时替代的链接,可以是图片,也可以是404错误页,目前我们定义的是首页,所以就是mobibrw.com,如果是要定义在404页面,可以把404页面的路径加上。当然替换的页面文件体积越小越好。你也可以不设置替换图片,而是使用下面的语句即可(服务器返回403禁止访问):

RewriteRule .*\.(gif|jpg|png|zip|gz|tar|pdf)$ – [F]

参考链接


网站如何防止图片被盗链!怎么样让网站的图片不被其他网站调用

发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注