如果访问者来自Google搜索,则显示不同的视图

时间:2012-04-07 01:06:20

标签: ruby-on-rails ruby http-referer

我正在努力完成与“纽约时报”和其他新闻报道相似的内容,这些新闻报道会在访问Google时提供完整的文章,但只有在直接访问时才显示预览。

我相信要检查访问者是否来自谷歌,我需要检查:request.env["HTTP_REFERER"]

这是对的吗?这只是“谷歌”这个名字的匹配吗?在控制器中是这样的逻辑:

if request.env["HTTP_REFERER"].match "google"
  # do action/set variable etc.

1 个答案:

答案 0 :(得分:2)

是的,你对这一切非常正确。如果用户来自谷歌,请通过正则表达式进行检查 - 并显示其他网站。示例代码:

if request.env["HTTP_REFERER"] =~ /google\.[a-z]{2,4}/
  # do the special google stuff here
  render layout: "special_google_layout"
else
  # do the regular stuff here
end

此正则表达式检查引用程序是否为字符串“google”,后跟一个点和2 - 4个小写字母。