为什么要配置防盗链呢?
如果你的论坛图片被别人大量引用,耗费了你的大量带宽资源,如果更不幸的是,你租用的服务器是按流量收费的话,那么不好意思,GG!隔天你就会收到欠费的船票喽!
来和我一起走进防盗链的学习吧。
编辑虚拟主机的配置文件
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
在相应的虚拟主机中加入配置文件如下:
SetEnvIfNoCase Referer "^http://.*\.123\.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>
又到了解释的时间了,我又去Google了下~*~
The SetEnvIfNoCase is semantically identical to theSetEnvIfdirective, and differs only in that the regular expression matching is performed in a case-insensitive manner.
其实SetEnvIfNoCase和之前讲的SetEnvIf语义上是一样的,只是SetEnvNoCase是忽略大小写的,就这点差别,他也是用来定义一个环境变量的。
SetEnvIfNoCase Referer 指明跳转来我们网站的上一站网址
"^http://.*\.123\.com" 符合以http://开头以.123.com结尾的
local_ref 变量名
SetEnvIfNoCase Referer "^http://.*\.123\.com" local_ref 整句话的意思是如果上一跳的网址是http://开头以.123.com结尾的(并且不区分大小写),则定义为local_ref
同理:
SetEnvIfNoCase Referer "^$" local_ref指的直接输入地址访问的,也被定义为local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">表示匹配文件名中包含.txt|.doc|.mp3|.zip|.rar|.jpg|.gif中任意一个的,对于这种文件进行以下处理:
Order Allow,Deny
Allow from env=local_ref
允许所有值等于变量local_ref的网址访问这些文件,其他的都拒绝
保存后重启Apache服务器
用一台其他机器访问我们的网页,就会看到网页可以加载,但是图片等都是无法加载的。
网友评论