मैं अपने https डोमेन से http डोमेन के लिए रेफरल हेडर कैसे पास कर सकता हूं?


13

मेरी वेबसाइट 100% https है। मेरे पास अन्य http डोमेन के लिंक हैं। Https पेज से http पेज पर लिंक करते समय रेफरर हेडर सेट नहीं होता है। से http://en.wikipedia.org/wiki/HTTP_referrer

यदि किसी वेबसाइट को एक HTTP सिक्योर (HTTPS) कनेक्शन और किसी अन्य सुरक्षित स्थान को छोड़कर कहीं से भी लिंक करने के लिए एक्सेस किया जाता है, तो रेफ़र फ़ील्ड नहीं भेजा जाता है।

मैं पसंद करूंगा कि अन्य डोमेन रेफ़रर को देख सकें ताकि उन्हें पता चले कि ट्रैफ़िक मेरे डोमेन से आता है। क्या इस हेडर को मजबूर करने का कोई तरीका है या कोई और उपाय है?

अपडेट करें

मैंने रीडायरेक्ट का उपयोग करके कुछ बुनियादी परीक्षण किया है:

http page  -- link to http  --> 301 redirect --> http page = referrer intact
https page -- link to https --> 301 redirect --> http page = referrer blank
https page -- link to http  --> 301 redirect --> http page = referrer blank
https page -- link to http  --> 302 redirect --> http page = referrer blank

जब किसी https पृष्ठ से http डोमेन पर http पुनर्निर्देशित पृष्ठ से लिंक किया जाता है, तो रेफरर खो जाता है। इसलिए रीडायरेक्ट पर कोई रेफर नहीं किया गया है।


Originबरकरार होना चाहिए, हालांकि आपके उपयोग के मामले अनुरूप न हो।
पचेरियर

जवाबों:



8

मेरी भी यही समस्या थी। मैं नीचे दिए गए मेटा टैग को जोड़कर हल करता हूं और यह केवल क्रोम और सफारी में काम करेगा।

<meta name="Referrer" content="origin">

6

अफसोस की बात है कि आप HTTP का उपयोग करने वाली साइटों के लिए HTTPS पर संदर्भ नहीं दे सकते। हालाँकि आप HTTPS से HTTPS या HTTP से HTTPS कर सकते हैं।

स्रोत

यदि ग्राहक एक सुरक्षित प्रोटोकॉल के साथ स्थानांतरित किया गया था, तो ग्राहक एक (गैर-सुरक्षित) HTTP अनुरोध में एक रेफर हेडर फ़ील्ड शामिल नहीं कर सकता।

आसपास एक काम एक आंतरिक रीडायरेक्ट स्क्रिप्ट का उपयोग करना होगा जो एचटीटीपीएस पर आगंतुक को लिंक करने के बजाय आप HTTP पर रीडायरेक्ट करते हैं और फिर इसे रीडायरेक्ट करते हैं।

उदाहरण के लिए:

<a href="http://www.yours.com/out.php?www.other.com">www.outboundsite.com</a> लेकिन यह मूल रेफरर का उपयोग नहीं करेगा।

एक अन्य संभावना यह है कि रेफ़रर्स के बजाय ट्रैकबैक का उपयोग किया जा रहा है और जहाँ तक मुझे पता है कि यह एचटीटीपीएस में काम करता है।


मेरे परीक्षण ने संकेत दिया है कि रीडायरेक्ट का उपयोग करने से काम नहीं होता (अपडेट देखें)।
नटक्रैकर

ट्रैकबैक का प्रयोग करें या HTTPS खो;)
साइमन हैटर

1
@bybe, इस उत्तर को संपादित करने की आवश्यकता है। देखें serverfault.com/a/520603/87017 और webmasters.stackexchange.com/a/71331/7654
Pacerier

4

मैं HTTPS पृष्ठ से किसी दूसरे पृष्ठ पर HTTP पृष्ठ पर एक लिंक स्थापित करने में सक्षम था और अभी भी निम्नलिखित तकनीक का उपयोग करते हुए एक रेफरल के रूप में पहले पृष्ठ का URL पास करता हूं।

परिभाषाएं

मूल पृष्ठ : HTTPS पृष्ठ जहां HTTP होस्टेड गंतव्य पृष्ठ का लिंक स्थित है। इस उदाहरण में:https://example1.com/origin.html

डेस्टिनेशन पेज : एचटीटीपी पेज जिसमें ओरिजनल पेज के रेफरर की पहुंच होती है। इस उदाहरण में:http://example2.com/destination.html

मूल योजना

इसका मूल पृष्ठ के HTTP संस्करण से रीडायरेक्ट आने का प्रभाव पड़ता है:

  1. HTTPS मूल पृष्ठ पर लिंक वर्तमान पृष्ठ से लिंक है लेकिन गंतव्य पृष्ठ [1] के लिए एक क्वेरी पैरामीटर जोड़ता है। उदाहरण के लिए:https://example1.com/origin.html?goto=http://example2.com/destination.html

  2. जब लिंक पर क्लिक किया जाता है तो example1.com पर सर्वर उस मानक अनुरोध को बाधित करता है जब क्वेरी पैरामीटर 'गोटो' मौजूद होता है। फिर वो:

    • एक 'गोटो' कुकी में 'गोटो' पैरामीटर संग्रहीत करता है।
    • वर्तमान अनुरोध के url से 'गोटो' पैरामीटर और मान निकालता है
    • मूल डोमेन के HTTP संस्करण पर इस नए साफ किए गए url को 302 रीडायरेक्ट करता है। http://example1.com/origin.html
  3. सर्वर एक 'गोटो' कुकी के लिए हर अनुरोध पर जाँच करता है और यदि वर्तमान कुकी को साफ़ कर देगा और फिर एक बहुत ही सरल पुनर्निर्देशित पृष्ठ को प्रस्तुत करेगा। इस पृष्ठ में [2] शामिल हैं:

    • एक जावास्क्रिप्ट window.location.replace () स्क्रिप्ट जो गोटो कुकी यूआरएल को रीडायरेक्ट करती है।
    • गोटो कुकी यूआरएल के मूल्य और कुछ सेकंड की देरी के साथ मेटा रीफ्रेश टैग।
    • गोटो कुकी यूआरएल का लिंक।

टिप्पणियाँ

[१] यह मूल समाधान एक खुला पुनर्निर्देशक है और फ़िशिंग हमलों में यूएएस को पुनर्निर्देशित करने के लिए गोटो क्वेरी पैरामीटर का उपयोग करते हुए बुरे लोगों से बचाने के लिए कुछ विचार दिया जाना चाहिए।

[२] जेएस रीडायरेक्ट या मेटा रिफ्रेश टैग के माध्यम से रीडायरेक्ट करने पर सभी ब्राउज़र रेफ़रर को नहीं भेजेंगे। मेरे परीक्षण में IE8 और लोअर रेफरल पास नहीं करता है।

मुझे यकीन नहीं है कि अगर यह तकनीक खोज इंजन क्रॉलर को लिंक का पालन करने की अनुमति देगा। यह मेरी आवश्यकताओं के लिए महत्वपूर्ण नहीं है।

यदि UA में कुकीज़ अक्षम हैं, तो यह केवल मूल पृष्ठ पर पुनः निर्देशित करेगा।

केवल पुनर्निर्देशन के लिए HTTP कनेक्शनों की अनुमति

मेरे सर्वर पर अनुरोध के बावजूद HTTPS लागू करने के लिए एक अपाचे नियम है:

<VirtualHost *:80>
    ServerName example1.com

    # if not on port 443 then 301 redirect to https while keeping any query string
    RewriteEngine              On
    RewriteCond %{HTTP_HOST}  ^example1\.com$ [NC]
    RewriteCond     %{SERVER_PORT} !443
    RewriteRule     ^(.*)$     https://%{HTTP_HOST}$1 [L,QSA,R=301]

काम करने के लिए ऊपर पुनर्निर्देशन तकनीक के लिए मुझे HTTP कनेक्शन को सशर्त रूप से अनुमति देने के लिए किसी तरह की आवश्यकता है। इसे करने के कई तरीके हैं। मैंने तय किया कि एक कुकी काम करेगी।

<VirtualHost *:80>
    ServerName example1.com

    # if not on port 443 then 301 redirect to https while keeping any query string
    RewriteEngine              On
    RewriteCond %{HTTP_HOST}  ^example1\.com$ [NC]
    RewriteCond     %{SERVER_PORT} !443
    RewriteCond %{HTTP_COOKIE}  !disable_ssl [NC]
    RewriteRule     ^(.*)$     https://%{HTTP_HOST}$1 [L,QSA,R=301]

अक्षम_पास कुकी को चरण 2 में सेट किया जाएगा और फिर चरण 3 में हटा दिया जाएगा।


ठीक है .... लेकिन यह बिल्कुल "रेफ़र हेडर " नहीं है।
पचेरियर

2

HTTP 1.1 प्रोटोकॉल के अनुसार http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3

ग्राहक का संदर्भ (गैर-सुरक्षित) HTTP अनुरोध में एक रेफर हेडर फ़ील्ड शामिल नहीं होता है यदि संदर्भित पेज सुरक्षित था।


1
मुझे क्यों नहीं करना चाहिए?
मार्टिगन

0

लगता है कि आप जो चाहते हैं वह संभव नहीं है, इसलिए संभव समाधान; यदि लक्ष्य साइट Google Analytics का उपयोग कर रही है (या मेरा मानना ​​है कि पिविक समान सिंटैक्स का उपयोग करता है, और अन्य आँकड़े पैकेज इस पर ध्यान नहीं देंगे) तो आप ट्रैकिंग params भेज सकते हैं, उदाहरण के लिए अपने लिंक में जैसे example.com

http://www.example.com/?utm_campaign=spring&utm_medium=referral&utm_source=exampleblog

यह विवरण के साथ उनके GA में दिखाई देगा, यह सुनिश्चित करें कि यह उन मूल्यों को लेने के लिए है जो किसी और ने उपयोग नहीं किए हैं इसलिए आप उन्हें संघर्षों में मजबूर नहीं करेंगे / न ही किसी अन्य के पीछे अपना ट्रैफ़िक छिपाएंगे।

Google एक आसान url बिल्डर यहाँ http://support.google.com/analytics/answer/1033867?hl=en करता है

अद्यतन - पुनः: शिष्टाचार

यातायात की प्रकृति के बारे में अधिक जानकारी के बिना, मैं केवल आम तौर पर / व्यक्तिगत रूप से बोल सकता हूं ...

एटिकेट हमेशा देखने वाले की नजर में रहने वाला है। इसके बिना मुझे लगता है कि GA में कम से कम यह संभवतः प्रत्यक्ष, या शायद (कोई भी सेट) के रूप में दिखाई देगा, जो अपने आंकड़ों को तिरछा करने के लिए ऐसा लगेगा जैसे कि उनका ब्रांड इससे बड़ा है। व्यक्तिगत रूप से मैं सावधानीपूर्वक चुने गए अभियान को पसंद करूंगा ताकि मुझे पता चले कि ट्रैफ़िक कहां से आ रहा है।

आप इसे इस रूप में भी देख सकते हैं, यदि आप उन्हें शायद ही कोई ट्रैफ़िक भेजते हैं, तो वे शायद नोटिस नहीं करेंगे, यदि आप उन्हें बहुत अधिक भेजते हैं तो वे शायद शिकायत नहीं करेंगे! यदि वे करते हैं, तो आप आमतौर पर किसी और को मुफ्त ट्रैफ़िक दे सकते हैं!

और यदि आप बहुत विशिष्ट हैं, तो यह मुद्दों का कारण नहीं होना चाहिए; शायद आपकी साइट के स्रोत के रूप में आपकी साइट का नाम और स्रोत?

http://www.example.com/?utm_campaign=mygreatsite.com&utm_medium=referral&utm_source=specialoffers

अच्छा विचार! मैंने इस वर्कअराउंड के बारे में सोचा था, लेकिन सोच रहा था कि क्या मेरे अंत से इसे लागू करने के आसपास कुछ "नियम" थे। आम तौर पर इन क्वेरी मापदंडों को तीसरे पक्ष की वेबसाइट द्वारा जोड़ा जाता है ताकि वे अपने अभियान आदि को ट्रैक कर सकें। क्या इस दृष्टिकोण को किसी भी तरह से बुरा व्यवहार माना जाएगा?
नटक्रैकर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.