防盗链:就是防止别人盗取你们公司的图片、文件、视频
**作用:**防盗链就是防止别人盗用服务器中的图片、文件、视频等相关资源。运维人员可以通过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结尾的文件将跳转到重定向页面。
测试
主站没问题

当盗链者再去盗用,就会显示这个图片

防盗成功