我需要允许为 Facebook 共享的用户保护页面建立索引。基本上,我有一个提供优惠券的 RoR 应用程序,我需要用户能够在 facebook 上分享优惠券。唯一的问题是用户必须有一个帐户才能查看每张优惠券页面上的所有优惠券详细信息。我希望他们能够通过指向该优惠券的链接共享优惠券(仅标题,价格),但如果用户没有帐户,优惠券的链接实际上将重定向到注册页面。因此,当 Facebook(和其他索引机器人)从优惠券 URL 中提取信息时,它们也会被重定向到注册页面并索引注册页面信息而不是优惠券页面信息。
有什么方法可以让抓取工具为每个优惠券页面编制索引,但将实际用户重定向到注册页面?
最佳答案
Found this post ...最终使用给出的第二个答案。在优惠券 Controller 的显示方法中,我刚刚将我的 before_filter 更新为如下内容:
if ( !request.env["HTTP_USER_AGENT"].match(/\(.*https?:\/\/.*\)/) && !user_signed_in? )
redirect_to new_user_registration_path
end
因此,当发出查看优惠券的请求时,它将允许机器人通过索引页面,但会将未登录的用户重定向到注册或登录。真的只对我的 Facebook 分享有用,但我肯定会帮助 SEO 和其他索引。我使用 Facebook 开发者工具来验证它是否正确编入索引。
希望这对其他人有帮助。
关于ruby-on-rails - Ruby on Rails 允许跟踪/索引 protected 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23205269/