使用.htaccess判断蜘蛛及对域名进行重定向

写了一段代码,首先判断是不是当前所用域名,然后判断是否是蜘蛛,如果两者同时成立,则转到统一的域名下。这个转向主要通过Rewrite来实现,说实话,ReWrite的功能很强大。

.htaccess代码如下:

#BEGIN Redirect all the URL to the specific domain fot bots
<IfModule mod_rewrite.c> 
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} !^blog.creke.net [NC]
    RewriteCond %{HTTP_USER_AGENT} (baiduspider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|robozilla|msnbot) [NC]
    RewriteRule ^(.*)$ http://blog.creke.net/$1 [R=301,L]
</IfModule>
#END

第一个RewriteCond的意思是,如果当前域名不是blog.creke.net,[NC]即不分大小写;第二个RewriteCond的意思是,通过判断Useragent来检测当前请求网页的是不是网络蜘蛛,用“|”代表或逻辑来匹配列表中每一个蜘蛛的Useragent的关键字,如果匹配,则当前请求者为网络蜘蛛。如果两个重写条件同时成立,则301重定向到当前域名的对应网页。

4 comments

  1. 光影 says:

    最近博客更新,baidu收录一直不好,google到没有问题,怀疑是之前做的301的问题。
    今天看到兄弟这篇文章,不错,我先尝试一下

    1. creke says:

      百度的收录确实有些灵异

  2. Artisoo says:

    不知道能不能写2条,一条判断是蜘蛛,然后301,一条判断不是蜘蛛,给出另外一个代码。

  3. ww51 says:

    非常好
    还是想请教
    如果想实现这样的效果,怎么改
    如果主机头是www,并且为百度蜘蛛,返回404

Leave a comment