如何从重定向的 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 中获取推荐人的主要内容,如果未能解决你的问题,请参考以下文章

php – cURL从重定向获取url

从重定向重写规则中排除图像文件夹

致命:无法从重定向更新 url 库

使用 NSURLSessionDownloadTask 从重定向 URL 下载 pdf 文件

如何使用 Python 获取重定向的 URL

如何从原始 URL Visual Basic .NET 中获取重定向的 URL