Mar 172007
 

本来自己在VPS上玩BLOG的时候是直接对于apache的配置文件做修改来实现的,也就是通过对于传递到PHP的环境变量中的Referer字段的判断来实现,具体可以看这篇文章无良的百度MP3搜索,然而现在在虚拟主机环境下就没有这么随心所欲了。

然而Dreamhost对于.htaccess的支持和mod_rewrite的支持,使得我可以通过URL Rewrite实现同样的功能,具体方法也很简单,就是在.htaccess中写入如下语句块

RewriteEngine On

RewriteCond %{HTTP_REFERER} mp3\.baidu\.com [NC,OR]
RewriteCond %{HTTP_REFERER} box\.zhangmen\.baidu\.com [NC,OR]
RewriteCond %{HTTP_REFERER} 220\.181\.27\.54 [NC,OR]
RewriteCond %{HTTP_REFERER} m\?ct=
RewriteRule .* – [F]

前面两句是禁止mp3.baidu.com和box.zhangmen.baidu.com(不知道这个域名是干什么用的,然而从日志来看这个域名爬走的流量一点不比mp3.baidu.com小)这两个域名Referer过来。
第三句是禁止这个IP的Referer,这个也是mp3.baidu.com的IP。
第四句是禁止Referer为类似“http://xxxx.com/m?ct=XXXXXX”这种形式,这是为了避免mp3.baidu.com以其他域名或IP过来爬,从我前几个月的日志来看,还是有不少IP是这样爬过来的,真不知道mp3.baidu.com的爬虫还有多少版本。

  One Response to “利用URL Rewrite禁止baidu mp3搜索”

  1. It’s really a nice and useful piece of information. I’m happy that you
    just shared this useful information with us.

    Please stay us up to date like this. Thanks for sharing.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>