Nginx 判断搜索引擎蜘蛛并进行跳转的配置示例
目录
在某些 SEO 或测试场景下,可能会有这样的需求:
搜索引擎蜘蛛正常访问页面,普通用户访问时跳转到指定地址。
下面记录一段当时实际使用过的 Nginx 判断蜘蛛并跳转的配置示例。
核心思路
- 通过
$http_user_agent判断访问者 - 如果是搜索引擎蜘蛛 → 正常访问
- 如果不是蜘蛛 → 统一跳转到指定页面
Nginx 配置示例
location / {
if ($http_user_agent ~* "Baiduspider|Baiduspider-render|360Spider|bingbot|Googlebot|Googlebot-Image|Yahoo! Slurp China|Yahoo! Slurp|iaskspider|Sogou web spider|Sogou Push Spider|Sogou Pic Spider|YisouSpider|Sosospider|YoudaoBot") {
set $Spider flag;
}
if ($Spider != flag){
rewrite ".*" https://www.josejang.com;
}
if ($Spider = flag){
rewrite ^/([^@]+)$ /index.php?$1 last;
}
}