如何从重定向的 url 中获取推荐人
Posted
技术标签:
【中文标题】如何从重定向的 url 中获取推荐人【英文标题】:how to get referrer from a redirected 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 实际上我忘记了我的代码使用的是哪一个 :)。 【参考方案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)
【讨论】:
以上是关于如何从重定向的 url 中获取推荐人的主要内容,如果未能解决你的问题,请参考以下文章