2017-05-11 34 views
8

Google Analytics hiển thị số lượng đáng ngờ (direct)/(none) làm nguồn cho trang web của tôi. Tôi biết rằng khi một trang web HTTP được liên kết từ một trang web HTTP, thông tin liên kết giới thiệu sẽ bị mất.Triển khai chuyển hướng HTTP sang HTTP chuyển hướng duy trì liên kết giới thiệu Google Analytics

Trong trường hợp của tôi, tôi có một trang web an toàn https://example.com và tôi sử dụng các thiết lập Apache sau để chuyển tiếp người dùng trong trường hợp họ cố gắng truy cập phiên bản không an toàn:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 
RewriteRule ^([^\.]+)$ $1.html [NC,L] 

Tất nhiên, tôi không thể kiểm soát xem một trang web bên ngoài (an toàn) liên kết tôi qua http hoặc https.

Bây giờ câu hỏi của tôi là:

  • tại sao thông tin giới thiệu bị mất từ ​​https đến http?
  • nếu trang web bên ngoài liên kết với tôi là http://example.com, điều này có được hiển thị trực tiếp trong phân tích không?
  • có cách nào để chuyển hướng người dùng đến trang web bảo mật, trong khi vẫn giữ liên kết giới thiệu không?

Trả lời

4

Điều này là do security:

Bởi vì nguồn gốc của một liên kết có thể là thông tin cá nhân hoặc có thể tiết lộ một nguồn thông tin khác tin, nó được khuyên rằng người dùng có thể chọn hay không phải trường Referer được gửi đi. Ví dụ: trình duyệt của trình duyệt có thể có nút chuyển đổi để duyệt web một cách công khai/ẩn danh, tương ứng sẽ bật/tắt gửi thông tin Người giới thiệu và Từ.

Khách hàng KHÔNG NÊN bao gồm trường tiêu đề Người giới thiệu trong yêu cầu HTTP (không an toàn) nếu trang giới thiệu được chuyển bằng giao thức bảo mật.

Tác giả dịch vụ sử dụng giao thức HTTP NÊN KHÔNG sử dụng biểu mẫu GET để gửi dữ liệu nhạy cảm, vì điều này sẽ làm cho dữ liệu này được mã hóa trong URI yêu cầu. Nhiều máy chủ, proxy và đại lý người dùng hiện có sẽ đăng nhập URI yêu cầu ở một số nơi mà các bên thứ ba có thể hiển thị. Máy chủ có thể sử dụng hình thức trình POST dựa trên thay vì

Hành vi này là tốt hơn explained here:

Khi đi giữa HTTP và HTTPS spec HTTP nói rằng một tiêu đề referer KHÔNG nên gửi (xem 15.1.3 trong RFC2616). Tuy nhiên, đặc điểm kỹ thuật không cho biết điều gì sẽ xảy ra giữa các trang HTTPS.


Câu hỏi của bạn đã được giải quyết trên StackOverflow trước. Xem this one.

Một số sửa chữa đề xuất:

1) Đối với một số trình duyệt, bạn chỉ có thể thêm thẻ meta mới vào trang của bạn: <meta name="referrer" content="always"> hoặc <meta name="referrer" content="origin">. Tìm hiểu thêm về điều này meta. Sự khác biệt trong hỗ trợ trình duyệt có thể là found here.

2) Bạn có thể sử dụng trang trung gian theo dõi số lần truy cập trang trong khi liên kết giới thiệu ở đó (http): http://page.com/reditect?url=https://page.com/finalpage.htm nơi/chuyển hướng sẽ thực hiện cuộc gọi đến Analytics để theo dõi finalpage.htm kèm theo liên kết giới thiệu trước khi chuyển hướng đến đó. Xem full explanation.

3) Bạn có thể thêm thông số trên chuyển hướng 301 và ghi đè thông tin liên kết giới thiệu với ga('set', 'referrer', 'http://example.com');. Xem full explanation. Điều này có thể được kết hợp với điểm trước đó và tránh theo dõi trên trang trung gian, nhưng thu thập dữ liệu của liên kết giới thiệu.

+0

Cũng giống như spam, nhưng các tùy chọn này là giải pháp tốt nhất cho vấn đề này. –

+0

Số 1) yêu cầu thẻ meta phải được đặt trong trang web gốc, phải không? Vì vậy, nó không thực sự là một sửa chữa khả thi – Marco

+0

Sau đó, hãy thử 2;) Điều duy nhất tôi có thể nghĩ về phía xấu là có thể là tỷ lệ phục hồi đi một chút xuống, bởi vì bạn theo dõi một lần xem trang trên chuyển hướng (để nhận được liên kết giới thiệu đến một đích nhất định) và sau đó một khi được chuyển hướng. Tôi đoán bạn cần phải thực hiện thương mại tại một số điểm. – nitobuendia

Các vấn đề liên quan