站内图片防盗链|.htaccess版

Posted by Harid九月 - 23 - 2010 Leave comments   56 views 

防盗链对于有流量限制的网站来说无疑是非常之重要的,今天写写怎么防盗链(虽然太多的人知道,但是还是写出来吧,备不时之需,哎呀,羞…… )

一开始,我是装了插件来做防盗链的,插件想必大家也都听说过,叫——HotLinkProtection。装过这个插件的童鞋应该知道如果主机是Unix/Linux系统,那么在网站的根目录下的.htaccess里会增加一段该插件生成的代码,也就是这个插件本身也是通过写.htaccess文件达到防盗链效果的。问题就出来了,那么是否可以卸掉这个插件,但是保存其在.htaccess文件里生成的代码来实现同样的效果呢?

于是,我就这么干了,在.htaccess文件里添加上这段代码(具体形式不一样,意思一致),然后添加上自己站点的例外和防盗链图片的文件夹以及重定向的链接。经过测试后,我发现这样做是完全可行的!

这个插件生成的代码如下:

1
2
3
4
5
6
# BEGIN HotLinkProtection
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?ninthday.net [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
# END HotLinkProtection

将其与原生的文件里的语句整合,在Wordpress原生的那一段里面添加下面一段,当然,你还是可以继续添加你想要的例外和想要保护的文件类型,如:

1
2
3
4
5
6
7
8
9
10
11
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !ninthday.net [NC]
RewriteCond %{HTTP_REFERER} !www.ninthday.net [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !google.com.hk [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteRule (wp-content/uploads.*\.(gif|jpg|jpeg|png)$) http://www.ninthday.net/images/daolian.png [R,NC,L]

不用说,将域名改为你的,文件夹也可以变为你想要保护的文件夹。 OK,这种方法也许不是最简单的,但的确是可行的!

附上我的.htaccess文件最后的这一部分内容,效果见:传送门>>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
FileETag none
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !ninthday.net [NC]
RewriteCond %{HTTP_REFERER} !www.ninthday.net [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !google.com.hk [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteRule (wp-content/uploads.*\.(gif|jpg|jpeg|png)$) http://www.ninthday.net/images/fangdaolian.gif [R,NC,L]
</IfModule>
 
# END WordPress

   声明:本文采用 BY-NC-SA 协议进行授权 | 星期九
   原创文章转载请注明:转自《站内图片防盗链|.htaccess版

分享本文: 腾讯微博 QQ空间 人人网 百度空间 开心网 新浪微博 Google Reader 豆瓣
Comments(12) Leave comments
  1. Gravatar
    yesureadmin Google Chrome Google Chrome 9.0.570.0 Windows Windows 7

    如果流量不超的话,我会一直不用这个功能,我倒希望人家来抄我的

    • Gravatar Harid  @  十二月 5th, 2010 at 20:06 replied.

      @yesureadmin, 哈哈,你还愿意让别人抄哦。其实流量一般是够用的啦。

  2. Gravatar
    woiweb Internet Explorer Internet Explorer 7.0 Windows Windows XP

    :sad:
    在Wordpress原生的那一段里面, 这个是指哪里?给个地址,我也想试试。

    • Gravatar Harid  @  九月 28th, 2010 at 12:46 replied.

      @woiweb, 如果你的主机是Linux或者Unix,如果你根目录有.htaccess文件的话,里面应该有这一段:

      # BEGIN WordPress

      RewriteEngine On
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]

      # END WordPress

    • Gravatar Harid  @  九月 28th, 2010 at 12:47 replied.

      @woiweb, 你就把传送门后面那一段写进这个文件就可以了。

  3. Gravatar
    WordPress啦 360 Browser 360 Browser SE Windows Windows XP

    为了保护自己的合法权益,这个防盗链那是必须的

  4. Gravatar
    abx Google Chrome Google Chrome 7.0.529.0 Windows Windows XP

    我有个问题,我也试过这种方法,但是我有个插件需要调用图片做缩略图,但是修改.htaccess后缩略图就不会显示了该怎么办?

    • Gravatar Harid  @  九月 26th, 2010 at 01:02 replied.

      @abx, 不应该啊,你的缩略图也是本站的图片,按理说不应该不会显示的,我的站里不也有缩略图么!什么插件?

  5. Gravatar
    笨瓜 Google Chrome Google Chrome 7.0.524.0 Windows Windows 7

    好含蓄,跟着走都不成功

    • Gravatar Harid  @  九月 24th, 2010 at 11:54 replied.

      @笨瓜, 你的根目录下默认有没有.htaccess文件的?

    • Gravatar Harid  @  九月 24th, 2010 at 15:52 replied.

      @笨瓜, 对了,不一定立时生效,而且有时候会因为浏览器缓存让你看不到效果,你试着按一下“Ctrl+F5”。

8 + 5 =  (required)
 疑问 鼓掌 难过 呲牙 强 微笑 快哭了 坏笑 汗 奋斗 撇嘴 OK 偷笑 委屈 尴尬 傲慢 握手 玫瑰 胜利 大哭 抱拳
启用云输入法:      

NOTICE1: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!

NOTICE2: 请申请gravatar头像(http://en.gravatar.com),木有头像的会显示为“小怪物”头像,将难以通过审核!

NOTICE3: 如果您能消除一下评论框旁边的邻居的寂寞的话,Harid将不胜感激,你懂的!^_^