php防盗链技术
在Http协议中,头信息里,有一个重要的选项: Referer
Referer: 代表网页的来源,即上一页的地址
如果是直接在浏览器上输入地址,回来进来,则没有Referer头.
这也是: 为什么服务器知道我们的图片是从哪儿引用的,也知道我们的客户从哪个网站链接点击过来的.
问题: 如何配置apache服务器,用于图片防盗链?
原理: 在web服务器层面,根据http协议的referer头信息,来判断.
如果来自站外,则统一重写到一个很小的防盗链提醒图片上去.
具体步骤:
1:打开apache 重写模块 mod_rewrite
前面的”#”去掉,并重启apache
2:在需要防盗的网站或目录,写.htaccess文件,
并指定防盗链规则
如何指定?
自然是分析referer信息,如果不是来自本站,是重写
重写规则:
哪种情况重写:
是jpeg/jpg/gif/png图片时
是referer头与localhost不匹配时
重写
怎么重写?
统一 rewirte到 某个防盗链图片
如下面的例子:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} .*\.(jpg|jpeg|gif|png) [NC]
RewriteCond %{HTTP_REFERER} !localhost [NC]
RewriteRule .* no.png
配置文件.htaccess
1 2 3 4 | RewriteEngine On RewriteCond %{REQUEST_FILENAME} .*\.(jpg|jpeg|gif|png) [NC] //表示什么条件下重写,是图片的条件下重写 RewriteCond %{HTTP_REFERER} !localhost [NC] //不是localhost访问时需要重写 RewriteRule .* no.png //重定向到图片no.png |
img.html
1 2 3 4 5 6 7 8 | <! DOCTYPE > < html > < head > < title >图片防盗链技术</ title > < meat http-equive="Content-Type" content="text/html;charest=utf-8"/> </ head > < img src="apple.jpg"/> </ html > |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战