Apache配置防盗链

为什么要配置防盗链呢?

如果你的论坛图片被别人大量引用,耗费了你的大量带宽资源,如果更不幸的是,你租用的服务器是按流量收费的话,那么不好意思,GG!隔天你就会收到欠费的船票喽!


来和我一起走进防盗链的学习吧。

编辑虚拟主机的配置文件

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

在相应的虚拟主机中加入配置文件如下:


SetEnvIfNoCase Referer "^http://.*\.123\.com" local_ref    

SetEnvIfNoCase Referer "^$" local_ref


        Order Allow,Deny

        Allow from env=local_ref

又到了解释的时间了,我又去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

表示匹配文件名中包含.txt|.doc|.mp3|.zip|.rar|.jpg|.gif中任意一个的,对于这种文件进行以下处理:

Order Allow,Deny

Allow from env=local_ref

允许所有值等于变量local_ref的网址访问这些文件,其他的都拒绝


保存后重启Apache服务器

用一台其他机器访问我们的网页,就会看到网页可以加载,但是图片等都是无法加载的。

你可能感兴趣的:(Apache配置防盗链)