当前位置:编程问答 > Nginx >

nginx设置图片防盗链(亲测有效)

因为nginx不支持.htaccess,所以在防盗链上比较麻烦。上网搜了一下,代码很容易搜到,甚至lnmp一键安装包的作者Licess都给出了这样一段防盗链代码,但是还是有很多人叫着方法无效,这是为什么呢?

Licess给出的代码如下:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
          {
                  valid_referers none blocked zhukun.net *.zhaoxi.net *.youdao.com *.zhuaxia.com *.zhaoxi.org *.google.cn *.google.com *.google.com.tw *.google.com.sg *.google.com.hk *.bloglines.com image.soso.com cn.bing.com image.baidu.com *.feedburner.com *.feedsky.com;
                  if ($invalid_referer) {
                  rewrite ^/ http://www.zhaoxi.org/images/makeskin/h17.gif;
                  #return 404;
                  }
          }
把这段代码加入到/usr/local/nginx/conf/nginx.conf的server段里,然后执行如下命令重启lnmp:
/root/lnmp restart

很多人在测试了这个方法以后,发现没有效果,这是为什么呢?原因在于上面这段代码跟另一段代码产生了冲突。同样是修改/usr/local/nginx/conf/nginx.conf文件,把其中的下面这段代码删除:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }
删除以后,再次重启lnmp,你会发现,防盗链设置已经生效了。

也可以将两者组合,形成一段新的代码:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
          {
                  expires      30d;
                  valid_referers none blocked *.zzzyk.com *.youdao.com *.zhuaxia.com *.226522.com *.google.cn *.google.com *.google.com.tw *.google.com.sg *.google.com.hk *.bloglines.com image.soso.com cn.bing.com image.baidu.com *.feedburner.com *.636600.com;
                  if ($invalid_referer) {
                  rewrite ^/ http://www.zhaoxi.org/images/makeskin/h16.gif;
                  #return 404;
                  }
          }
重启lnmp,你会发现,防盗链设置仍然有效。
Apache
IIS
Nginx
Tomcat
如果你遇到什么编程难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,