как получить реферер с перенаправленного URL - PullRequest
14 голосов
/ 17 января 2012

У меня есть URL

domain.com/a

, который перенаправляет на

domain.com/controller/action/a.

Как получить реферера (например, domain.com/a) в моем действии для domain.com/controller/action/a?

Одним из вариантов было добавить ссылающийся домен в качестве параметра.

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

Есть ли способ получить реферер без передачи старого реферера в качестве параметра. Как мы получили бы от **request.referrer**. Похоже, что request.referrer не работает с перенаправленными URL.

Я использую Ruby on Rails для своей разработки.

Ответы [ 4 ]

11 голосов
/ 10 апреля 2012

Я сохраняю путь реферера в сеансе прямо перед перенаправлением

session[:referrer]=url_for(params)

, а затем используйте его там, где мне нужно, через session[:referrer].

9 голосов
/ 17 января 2012

Я полагаю, вы ищете request.referrer свойство: http://rack.rubyforge.org/doc/classes/Rack/Request.html#M000280

4 голосов
/ 11 апреля 2012

Мы используем эту строку в нашем application_controller.rb, чтобы сохранить http_referer, когда посетитель посещает наш сайт:

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

Позже мы сохраним значение в нашей модели дляотслеживание.

0 голосов
/ 14 сентября 2015

Может быть поздно, но просто добавить.Я думаю, что важно удалить сеанс после его использования.

redirect_to session.delete(:referrer)
...