如何配置.htaccess仅对Google Bot执行301重定向?
仅针对Google Bot将旧域名重定向到新域名的.htaccess配置
你原来的代码失效的核心原因是用户代理匹配规则太严格——Google Bot的完整用户代理字符串并非单纯的"googlebot",而是类似Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html),用^googlebot只能匹配完全以"googlebot"开头的UA,自然无法命中真正的Google Bot,导致Google Bot仍抓取旧域名,进而标记其为规范域名。
下面是修正后的可生效代码:
RewriteEngine On # 仅针对Google Bot(忽略大小写),且访问的是旧域名时执行重定向 RewriteCond %{HTTP_USER_AGENT} googlebot [NC] RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC] RewriteRule ^(.*)$ https://new-domain.com/$1 [L,R=301]
代码说明:
[NC]标记:忽略大小写,确保匹配所有大小写形式的Google Bot UA(比如GoogleBot、googlebot等)- 第二个
RewriteCond:限定仅当访问的是旧域名时才触发重定向,避免新域名自身出现循环跳转 R=301:永久重定向,明确告诉Google Bot该页面的永久地址已变更,帮助快速更新索引[L]:表示这是最后一条规则,匹配成功后不再执行后续规则
测试方法:
你可以用curl命令模拟Google Bot的请求来验证配置是否生效:
curl -A "Googlebot/2.1" http://old-domain.com/test-page
如果返回301状态码并跳转到新域名的对应页面,说明配置正常工作。
内容的提问来源于stack exchange,提问作者Vapebossik
相关产品推荐
相关产品推荐

