2013-02-28 79 views
1

我想保存用户在登陆我的网站前访问的网址。我应该怎么做在Rails中? 我试过 request.env["HTTP_REFERER"]但无法检索以前的网址。检测用户在访问我的网站前在Rails中访问的网址

可能这是一种错误的方式进行测试,但这里是我做过什么:

  1. 我去一个页面,也就是说,google.com
  2. 然后我输入:本地主机:3000 。然后调试器来捕获request.env [“HTTP_REFERER”]。但它不会产生

仅当用户通过重定向到达我的站点时,HTTP_REFERER才可用,而不是手动输入地址?

谢谢。

+3

这叫'referer'。看看这里:http://stackoverflow.com/questions/5819721/how-to-get-request-referrer-path – 2013-02-28 22:07:32

+0

太多的冷藏箱? – Leeish 2013-02-28 22:08:19

回答

2

如果您输入新网址,则无法看到用户所在的最后一页。HTTP_REFERER仅在您点击链接时才会设置。如果你能看到用户以前查看的任何任意URL,那将是一个非常大的隐私入侵。

+0

另请注意,用户可以在其浏览器中禁用引用程序(至少在Firefox和Chrome中)。 – 2013-02-28 22:23:15

1

这是在HTTP头中作为“referer”发送的。所以,如果用户的浏览器和/或任何代理没有过滤出来,request.referer应该有你需要的。

+0

谢谢。我更新了我的问题以澄清。您能否提一些建议? – AdamNYC 2013-02-28 22:11:30

+1

引用者的意图是指示引导用户访问网站的“源”。因此,点击链接或获取重定向可能都是您最后一次成为“引荐者”的页面的有效方式。如果你在浏览器中键入你的URL,你就是“源”,而不是你所在的任何页面,所以我不希望最后访问的页面显示在引用标题中。所以,是的,当你手动输入地址时,我希望它是空的。我不确定所有的浏览器是否符合这个观点,正如其他海报评论中的一样,现在有些人现在允许你关闭隐私。 – yogaphil 2013-02-28 22:55:51