Apache简单防盗链

| |
[不指定 2005/03/31 23:11 | by ipaddr ]
防盗链设置样本:

SetEnvIf Referer "^http://(.)+\.ilinux\.cn/" local_ref=1
SetEnvIf Referer "^http://(.)+\.isql\.cn/" local_ref=1
#SetEnvIf Referer "^http://(.)+\.other\.org\.cn/" local_ref=1
SetEnvIf Request_URI "/logo(.)+" local_ref=0
<FilesMatch "\.(mp3|wmv|png|gif|jpg|jpeg|avi|bmp|ram|rmvb|rm|rar|zip|mp3)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>

解释:
1. 蓝色部分,表示设置允许访问的referer地址,第一行的意思为所有http协议访问,以.ilinux.cn结尾的域名地址,第二行类似,只是换成了.isql.cn,表问我前面的鬼符是什么,不懂得可以去翻正则表达式的研究文献,不想深究的可以照猫画虎设置自己的网站。
2. 绿色部分,表示不在上述引用域名范围内,但可以被放行的特例,本例中表示网站/目录,所有以logo开头的文件(用作允许其它网站的友情连接引用本站logo)。
3. 橙色部分是设置反盗链的关键部分,上面每一个设置都联系到了local_ref这个环境变量,只有这个变量为1,则允许被引用,否则显示一个X。
4. 紫色部分设置了哪些扩展名的文件加入反盗链的规则。

补充:
我是直接设置在httpd.conf里面的,如果只想针对哪个目录设置,可以放在目录的.htaccess文件内。
另外,网上好多文档,都有错误,把SetEnvIf写成了SetEnvIfNoCase


附我以前用mod_rewrite写的
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://bbs.ilinux.cn/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://bbs.ilinux.cn$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.ilinux.cn/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.ilinux.cn$      [NC]
RewriteCond %{HTTP_REFERER} !^http://ilinux.cn/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://ilinux.cn$      [NC]
RewriteRule .*\.(mp3|wmv|png|gif|jpg|jpeg|avi|bmp|ram|rmvb|rm|rar|zip)$ http://www.ilinux.cn [R,NC]
上面的,需要Rewrite模板.所有指定的文件,如果Referer不是上面的值,将被重定向到首页.

Net | 评论(0) | 引用(33) | 阅读(3427)