初级的php程序员一定会想到,包括我在写这篇文章前 if($_SERVER['HTTP_REFERER'] ...) //然后正则匹配也好,判断也好{header('XXX');} 可是这样只不过是自欺欺人,防盗链的目的,并不只是防止其他页面引用,而是缓解自家网站的压力 这样的写法,仅仅在一部分上缓
初级的php程序员一定会想到,包括我在写这篇文章前
if($_SERVER['HTTP_REFERER'] ...) //然后正则匹配也好,判断也好 { header('XXX'); }
可是这样只不过是自欺欺人,防盗链的目的,并不只是防止其他页面引用,而是缓解自家网站的压力
这样的写法,仅仅在一部分上缓解服务器压力,可是服务器依然要解析php,处理php,无法真正达到缓解服务器压力的目的
防盗链应该要从服务器入手配置
当然了,刚开始学习肯定是apache了
第一步,打开apache的httpd.conf文件
LoadModule rewrite_module modules/mod_rewrite.so 把这句开头的#号去掉
重启
第二步,在网站的目录下 创建 .htaccess 文件,普通的 右键 新建文件方式是行不通(windows系统),可以打开记事本
然后另存为,选择文件类型为所有文件,然后输入文件名
第三步.打开.htaccess 文件
写入
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} .*\.(jpg|jpeg|gif|png) [NC]
RewriteCond %{HTTP_REFERER} !localhost [NC] 把localhost 换成你网站的域名
RewriteRule .* 小子别盗链.jpg 换成你想让对方看的图片
这样只要别人在网站引用的你网站上的图片,就只会显示 小子别盗链.jpg 内容
这只是 mod_rewrite 模块的一小个功能,说php好学的人,也只不过是了解了一小小部分而已.