如何使用htaccessredirect所有访问者,但search引擎机器人

我需要将所有访问者永久redirect到除search机器人(Google,Yahoo,MSN等)之外的特定域名,我应该如何使用htaccess来执行此操作?

你可以使用RewriteCond否定来颠倒规则,如下所示:

 RewriteEngine On RewriteCond %{REMOTE_ADDR} !^(110\.174\.129\.147|203\.217\.17\.162) RewriteCond %{HTTP_USER_AGENT} !(Googlebot|msnbot|Surp) [NC] RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301,NE] 

为了让所有的机器人,你可以实现一个无所事事的规则,例如

 RewriteCond %{HTTP_USER_AGENT} (bot|spider) [NC] RewriteRule ^ - [L] 

此规则触发所有访问者,其用户代理字符串中包含botspider 。 当然,如果你只想要像Google,Yahoo和Bing这样的少数机器人,你可以更具体一些。 当条件满足时,没有其他事情发生。

要将其他人重定向到另一个域,只需附加一个简单的重定向规则即可

 RewriteRule ^ http://www.example.com [R,L] 

当一切按照你的预期工作时,你可以把R改成R=301 。 从不测试启用301 ,看到这个答案提示调试.htaccess重写规则的细节。