Prabesh Shrestha
Prabesh Shrestha

Reputation: 2742

how to get referrer from a redirected url

I have an url

domain.com/a

which redirects to

domain.com/controller/action/a .

How do I get the referrer (i.e domain.com/a) in my action for domain.com/controller/action/a ?

One option was to add the referring domain as a parameter .

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

Is there a way to get the referrer without passing old referrer as a parameter. Like we would get from **request.referrer**. request.referrer doesn't seem to work with redirected urls.

I am using Ruby on Rails for my development.

Upvotes: 14

Views: 11013

Answers (4)

chickensmitten
chickensmitten

Reputation: 495

May be late, but just to add on. I think it is important to remove the session after using it.

redirect_to session.delete(:referrer)

Upvotes: 0

okliv
okliv

Reputation: 3959

I store the referrer path in the session right before redirection

session[:referrer]=url_for(params)

and then use it where I need it via session[:referrer].

Upvotes: 11

yeowzir
yeowzir

Reputation: 309

We use this line in our application_controller.rb to save the http_referer when a visitor visits our site:

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

Later on, we will save the value into our model for tracking.

Upvotes: 4

Andrew K
Andrew K

Reputation: 1349

I believe you are looking for the request.referrer property: http://rack.rubyforge.org/doc/classes/Rack/Request.html#M000280

Upvotes: 9

Related Questions