【问题标题】:how to get referrer from a redirected url如何从重定向的 url 中获取推荐人
【发布时间】:2012-02-12 12:03:16
【问题描述】:

我有一个网址

domain.com/a

重定向到

domain.com/controller/action/a.

如何在 domain.com/controller/action/a 的操作中获取引荐来源网址(即 domain.com/a)?

一种选择是将引用域添加为参数。

domain.com/controller/action/a?referral=domain.com/a.

有没有办法在不传递旧的referrer 作为参数的情况下获取referrer。就像我们从**request.referrer** 得到的一样。 request.referrer 似乎不适用于重定向的 url。

我正在使用 Ruby on Rails 进行开发。

【问题讨论】:

  • @okliv 实际上我忘记了我的代码使用的是哪一个 :)。

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


【解决方案1】:

我在重定向之前将引用路径存储在会话中

session[:referrer]=url_for(params)

然后通过session[:referrer]在我需要的地方使用它。

【讨论】:

  • 我想没有其他办法
【解决方案2】:

我相信您正在寻找request.referrer 属性:http://rack.rubyforge.org/doc/classes/Rack/Request.html#M000280

【讨论】:

    【解决方案3】:

    当访问者访问我们的网站时,我们在 application_controller.rb 中使用这一行来保存 http_referer:

    session[:http_referer] = request.env["HTTP_REFERER"]

    稍后,我们会将值保存到我们的模型中以进行跟踪。

    【讨论】:

      【解决方案4】:

      可能会迟到,但只是为了补充。我认为在使用后删除会话很重要。

      redirect_to session.delete(:referrer)
      

      【讨论】:

        猜你喜欢
        • 2012-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多