大家好,又见面了,我是你们的朋友全栈君。
要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件。一来可以追溯上一个入站地址是什么,二来对于资源文件,可以跟踪到包含显示他的网页地址是什么,因此所有防盗链方法都是基于这个Referer字段。
location ~* .(gif|jpg|png|swf|flv|bmp)$ {
valid_referers none blocked *.itwhy.org itwhy.org;
if ($invalid_referer) {
rewrite ^/ http://www.kuqin.com/nolink.gif;
}
}
Apache 防盗链需要加载mod_rewrite.so模块。
httpd.conf 或 .htaccess 文件里面加入如下语句
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://itwhy.org/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://itwhy.org$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.kuqin.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.kuqin.com$ [NC]
RewriteRule .*.(png|gif|jpg|swf|bmp|flv)$ http://www.kuqin.com/nolink.gif [R,NC]
IIS支持UrlRewrite吗?答案:不支持。但是我们可以通过安装第三方服务器扩展让IIS支持。目前有一种产品能比较好地支持IIS的UrlRewrite,名字叫ISAPI_Rewrite。
httpd.ini里面加入如下语句
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://1.*).*
RewriteRule .*.(?:gif|jpg|png|swf|flv|bmp) /nolink.gif [I,O]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163481.html原文链接:https://javaforall.cn