在Apache中如何使用mod_rewrite防止图片盗链
时间:2019-11-20 08:54:16 来源:igfitidea点击:
盗链是指一个网站从使用另一个网站的图片链接。 盗链也称为热链接(hot linking ),盗链占用了我的大量带宽。
如何在apache web服务器中防止热链接?
解决方案非常简单,使用Apache mod_rewrite来检查浏览器提供的引用信息来禁止图片热链接。
在Apache中如何防止图片盗链?
确保Apache mod_rewrite已启用。
方法1:防止图片“热链接”
打开httpd.conf或者.htaccess文件
# vi httpd.conf
添加以下配置指令:
SetEnvIfNoCase Referer "^http://www\.theitroad\.com/" banimages=1 SetEnvIfNoCase Referer "^http://theitroad\.com/" banimages=1 SetEnvIfNoCase Referer "^$" banimages=1 <FilesMatch "\.(gif|png|jpe?g)$"> Order Allow,Deny Allow from env=banimages=1 </FilesMatch>
或者我们可以使用以下简单代码:
RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?theitroad.com/.*$ [NC] RewriteRule ^.*\.(bmp|tif|gif|jpg|jpeg|jpe|png)$ - [F]
方法2:防止图片盗链,重定向到新图片
这种方法将显示我们提供的说明图片
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?theitroad\.com/.*$ [NC] RewriteRule .*\.(gif|jpe?g|png)$ http://www.theitroad.local/noop.jpg [R,NC,L]
如果我们修改的是httpd.conf文件;则需要重新启动Apache,使设置生效:
# /etc/init.d/httpd restart