php图片加链接,php 图片和文件加密/防盗链总结

通常LAMP环境中,可以直接使用.htaccess防盗链。

htaccess防盗链及目录加密总结

防盗链原理:

http标准协议中有专门的字段记录referer

1、可以追溯上一个入站地址是什么

2、对于资源文件,可以跟踪到包含显示他的网页地址是什么。

因此所有防盗链方法都是基于这个Referer字段。

方法一、在httpd.conf中增加

SetEnvIfNoCase Referer “^http://zhoz\.com/” local_ref=1

Order Allow,Deny

Allow from env=local_ref

Allow from 127.0.0.1

方法二、使用rewrite,需要增加apache的mode_rewrite,支持.htaccess文件目录权限限制

要确认你的服务器或空间的服务器解译引擎为Apache2,还有支持.htaccess客户设置文件,

如果你有自己的服务器就请先对./conf/httpd.conf 文件做以下修改

找到:#LoadModule rewrite_module modules/mod_rewrite.so

把前面的 # 给去掉

找到等一个 AllowOverride None 改为 AllowOverride All

重启Apache2服务器

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^http://zhoz.com/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.zhoz.com$ [NC]

## 也就是只有通过这两个地址才可以下载你所提供的东东。

RewriteRule .*.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ http://www.ling1.cn/404.shtml [R,NC]

## 不是通过上面的地址访问这些为扩展名的文件时就回重定向到后面的404页面。

如果是Win主机,不支持.htaccess则可以通过新建文件,改造上面的代码的方法来实现:

1、新建一个文本文档 改名字为httpd.ini 在此文件中添加如下代码

[ISAPI_Rewrite]

CacheClockRate 3600

RepeatLimit 32

#已配置了伪静态的可以删除上面三行代码

#防盗链设置

RewriteCond Host: (.+)

RewriteCond Referer: (?!http://(?:此处填写你的域名\.cn|(.*)\.此处填写你的域名\.cn|baidu\.com|(.*)\.baidu\.com|google\.com|(.*).\google.com)).*

RewriteRule .*\.(?:jpg|jpeg|gif|png|bmp|rar|zip|exe) /zhoz.com.gif [I,O,N]

2、把httpd.ini和zhoz.com.gif上传至网站根目录

方法三、直接用PHP代码判断

$referer = $_SERVER[’HTTP_REFERER’];

$selfurl = $_SERVER[’HTTP_HOST’];

// 引用地址中是否包含host地址,不过原理就是这样,判断referer是否是本站地址。

if(false == strpos($referer,$selfurl)) {

echo 'zhoz.com提示:非法盗链!';

exit;

}

?>

[注:]

- .htaccess必须以ASCII模式上传,最好将其权限设置为644。

错误文档的定位

常用的客户端请求错误返回代码:

401 Authorization Required

403 Forbidden

404 Not Found

405 Method Not Allowed

408 Request Timed Out

411 Content Length Required

412 Precondition Failed

413 Request Entity Too Long

414 Request URI Too Long

415 Unsupported Media Type

常见的服务器错误返回代码:

500 Internal Server Error

用户可以利用.htaccess指定自己事先制作好的错误提醒页面。一般情况下,人们可以专门设立一个目录,例如errors放置这些页面。然后再.htaccess中,加入如下的指令:

ErrorDocument 404 /errors/notfound.html

ErrorDocument 500 /errors/internalerror.html

一条指令一行。上述第一条指令的意思是对于404,也就是没有找到所需要的文档的时候得显示页面为/errors目录下的notfound.html页面。不难看出语法格式为:

ErrorDocument 错误代码 /目录名/文件名.扩展名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值