2012-01-17 21 views
14

Tôi có một urllàm thế nào để có được giới thiệu từ một url chuyển hướng

domain.com/a

mà chuyển hướng đến

domain.com/controller/action/a.

Làm cách nào để nhận được liên kết giới thiệu (ví dụ: domain.com/a) trong hành động của tôi cho domain.com/controller/action/a?

Một tùy chọn là thêm miền giới thiệu làm tham số.

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

Có cách nào để nhận được liên kết giới thiệu mà không chuyển giới thiệu cũ làm thông số hay không. Như chúng tôi sẽ nhận được từ **request.referrer**. request.referrer dường như không hoạt động với các url được chuyển hướng.

Tôi đang sử dụng Ruby on Rails để phát triển.

+0

@okliv thực sự tôi đã quên mã nào tôi đã sử dụng cho mã của mình :). –

Trả lời

11

tôi lưu trữ đường dẫn giới thiệu trong phiên ngay trước khi chuyển hướng

session[:referrer]=url_for(params) 

và sau đó sử dụng nó mà tôi cần nó qua session[:referrer].

+0

Tôi đoán không có cách nào khác – lulalala

4

Chúng tôi sử dụng dòng này trong application_controller.rb của chúng tôi để lưu HTTP_REFERER khi một vị khách đến thăm trang web của chúng tôi:

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

Sau đó, chúng tôi sẽ lưu giá trị vào mô hình của chúng tôi để theo dõi.

0

Có thể đến trễ, nhưng chỉ để thêm vào. Tôi nghĩ điều quan trọng là phải xóa phiên sau khi sử dụng nó.

redirect_to session.delete(:referrer)