使用HTTP协议。利用referer做防盗链(不需要用PHP编写,而是在服务器层面控制就OK了)
我们在网页里访问站外的图片的时候,在图片本站是可以看得,在外头就不能看了
因为header信息中的referer元素。
还有是做统计的时候,
我们能够统计出来用户是从哪个地方,什么时间访问网站的。比如腾讯分析网站
统计的时候是靠什么知道用户从什么地方去的网站
在HTTP协议中 头信息中有一个很重要的选项 referer
referer 表示的是网页的来源以及上一页的地址
如果直接在浏览器输入地址,进入网站,则没有referer头信息
所以,服务器可根据referer来知道用户从哪个网站进来的和图片是从哪个网站进来的
利用referer头信息来设置防盗链的具体操作步骤如下:
- /**
- 如何配置apache服务器。用于图片防盗链(使用url重写)
- 在web服务器层面,我们可以在http协议的referer头信息来判断,
- 如果来自站外,则统一重写到一个很小的防盗链提醒图片上去
- 步骤:
- 1.打开 apache 重写模块 mod_rewrite
- (D:\wamp\bin\apache\apache2.4.9\conf)
- #LoadModule rewrite_module modules/mod_rewrite.so
- 把#去掉,重启apache
- 2.在需要防盗的网站或者目录下,写 .htaccess 文件(windows下不能直接创建,可以另存)
- 并指定防盗链规则
- 分析referer信息,如果不是来自本站,则重写
- **/
- 重写规则 .htaccess 文件
- 1.哪种情况重写规则
- 是jpeg/gif/png图片的时候
- 是referer头与localhost不匹配的时候
- 2.怎么重写
- 统一 rewrite 到某个防盗链图片上
- RewriteEngine On
- //只是在改页面下生效
- Rewrite Base /HTTPxieyi/day1
- //会对以下格式的文件进行重写规则
- RewriteCond %{REQUEST_FILENAME} .*\.(jpg|jpeg|gif|png) [NC]
- //如果不是来自localhost的用户,会重写
- RewriteCond %{HTTP_REFERER} !localhost [NC]
- //会重写到自学it网的logo上
- RewriteRule .* http://www.zixue.it/static/image/common/zixuelogo.png
html的具体代码如下