为搜索机器人重新定义 nginx 参数的最佳方法

为搜索机器人重新定义 nginx 参数的最佳方法

在我们的网站上,我们根据用户的地理位置自动提供不同的内容。为了实现这一点,我们将带有主机 IP 地址的变量传递给我们的 fcgi 应用程序。

问题是,我们想服务全部搜索机器人的内容,所以我想专门针对这些情况传递不存在的 IP。

到目前为止,我已经想出了这块配置代码(只要 nginx 不知道“else”):

location / {

  if ( $http_user_agent ~* Googlebot ) {
    set $remote_addr_googled "0.0.0.0";
  }

  if ( $http_user_agent !~* Googlebot ) {
    set $remote_addr_googled $remote_addr;
  }

  fastcgi_param REMOTE_ADDR $remote_addr_googled;

}

还有其他更有效的方法吗?

答案1

关键是要将 Googlebot 视为来自类似位置、IP 范围等的典型用户(即,不要将 Googlebot 视为来自其自己独立的国家/地区 - 这是隐藏身份)。

官方 Google 网站站长博客:Google 如何定义 IP 传送、地理位置和隐藏

更新:您可以使用nginx 嵌入 perl 模块对于 if/then/else 条件。

相关内容