HTTP协议,HTTP协议是什么?返回列表
上传时间:2015-02-02 内容关键字:
3. 重写条件:
1. 是jpeg/jpg/gif/png图片
2. referer头与localhost不匹配时
4. 怎么重写:
统一rewrite到某个防盗链图片,可以查看apache帮助手册。
重写文件.taccess:
RewriteEngine On
#Rewrite Base /0618
RewriteCond %{REQUEST_FILENAME} .*\.(jpg|jpeg|gif|png) [NC]
RewriteCond %{HTTP_REFERER} !localhost [NC]
RewriteRule .* no.png
注意:
1. 此文件如果放在www根目录下则监控所有项目目录,如果只想监控/0618则:Rewrite Base /0618
2. 这个时候,如果你用localhost/...来访问某个带img图片的文件是会出来预期效果的,因为上 面重写规则中已经规定了,只要referer中的服务器主机是localhost就认为是站内访问,就 运行,否则只要访问带有图片的页面,即只要站外使用本站的图片路径,全部把该图片的路 径重写到no.png路径下。比如用127.0.0.1代替localhost访问该项目下的页面,服务器就会 把127.0.0.1当做是站外请求,因为它的referer不是localhost(虽然在本地他们两个都代表 apache的服务器地址)
3. 但是有以下这种写法:
if $_SERVER[] !== ‘localhost’
header(‘no.png);
这种写法呢,也可以看到相同的效果,但是却不科学,因为防盗链使用rewrite的话直接在http请求头部拦截了非法盗链起到了减轻服务器压力的作用,但是如果这个处理都进入了服务器中php文件里,那原本负面影响已经产生了,所以不科学。
2. 问题:采集防盗链图片:
发送一个图片的请求,返回值是(请求行,头部和主体信息)+(图片信息):