防盗链:就是防止别人盗取你们公司的图片、文件、视频
作用:防盗链就是防止别人盗用服务器中的图片、文件、视频等相关资源。运维人员可以通过apache提供rewrite模块进行优化。
配置项:
RewriteEngine ON | ##打开网页重写功能 |
RewriteCond | ##设置匹配规则 |
RewriteRule | ##设置跳转动作 |
rewrite的规则:%{HTTP_REFERER} 浏览 header 中的链接字段,存放一个连接的 URL,代表是从哪个链接访问所需的网页。
!^ | 不以某个字段开头 |
.*$ | 以任意字符结尾 |
NC | 不区分大小写 |
R | 强制跳转 |
规则匹配:如果相应变量的值匹配所设置的规则,则逐条往下处理;如果不匹配,则后面的规则不再继续匹配。
环境介绍
在配置编译安装源码包时使用
./configure --prefix=/usr/local/httpd --enable-cgi --enable-rewrite --enable-so && make && make install
主网站:www.a.com
盗链者:www.b.com
配置文件
vi /usr/local/httpd/conf/httpd.conf在主配置文件的160行左右LoadModule rewrite_module modules/mod_rewrite.so把前面的#去掉
现在去主网站上进配置,开启防盗链
vi /usr/local/httpd/conf/httpd.conf在<Directory “/usr/local/httpd/htdocs”> 区域中,添加RewriteEngine On ##启用重写功能RewriteCond %{HTTP_REFERER} !^http://a.com/.*$ [NC]RewriteCond %{HTTP_REFERER} !^http://a.com$ [NC]RewriteCond %{HTTP_REFERER} !^http://www.a.com/.*$ [NC]RewriteCond %{HTTP_REFERER} !^http://www.a.com$ [NC]RewriteRule .*\.(gif|swf|png)$ http://www.a.com/error.jpg [R,NC]</Directoy> #这个是区域结束,必须要在这个上面,添加到区域外,会无效甚至报错
最终匹配结果为:第二、三、四、五行的信任站点,能够使用网站上的图片;处理信任站点以外的站点,如果访问或使用 http://www.a.com 域名以外的 gif、 swf、png结尾的文件将跳转到重定向页面。
测试
主站没问题
当盗链者再去盗用,就会显示这个图片
防盗成功