如果Sinatra路线来自我的webapp,请确定一下

时间:2013-12-15 01:11:57

标签: sinatra dsl routes

我有一个基于Sinatra / Padrino的网络应用程序已启动并运行,但我想对其进行一些小改动以帮助我们进行营销。

目前,当用户在浏览器地址栏中输入www.mygreatapp.com时,他们会被带到应用主页面,这可能会让新用户或潜在客户感到困惑。理想情况下,我们希望这样,当他们从其他网站或谷歌搜索到我们的主页或手动输入URL时,他们会显示一个单独的登录页面,更详细地解释网站,然后他们可以前往实际的主页。

请记住,在网络应用程序中,有来自更深层页面的链接会重定向回主页,我们希望这些链接仍然可以转到实际的主页。

目前,主页的路由处理程序类似于:

get '/' do
  render 'homepage'
end

我基本上希望它能够做到的是:

get '/' do
  if {{ This was called from within www.mygreatapp.com }}
    render 'homepage'
  else {{ This was called from externally or another site }}
    render 'landingpage'
  end
end

这可能吗?这甚至是处理这类事情的最佳方式吗?或许还有另一种方法可以实现这一目标,我不知道了吗?

1 个答案:

答案 0 :(得分:1)

是的,这是可能的,并且有很多方法可以做到这一点。就个人而言,我会给登陆页面提供自己的路线,并在第一次访问时放置一个永久的cookie(也可能是其他东西,以防cookie被擦除),表明某人已经去过该网站。如果他们有饼干,不要做任何事情。如果他们不是,他们是新的,将他们重定向到着陆页。