Moja strona internetowa jest w 100% https. Mam linki do innych domen http. Nagłówek strony odsyłającej nie jest ustawiony podczas łączenia ze strony https do strony http. Od http://en.wikipedia.org/wiki/HTTP_referrer
Jeśli dostęp do strony internetowej uzyskuje się za pomocą połączenia HTTP Secure (HTTPS), a łącze prowadzi do dowolnego miejsca z wyjątkiem innej bezpiecznej lokalizacji, pole odsyłające nie jest wysyłane.
Wolałbym, inne domeny można zobaczyć odnośnika zwrotnego tak, że oni wiedzą, że ruch pochodzi z mojej domeny. Czy istnieje sposób na wymuszenie tego nagłówka lub istnieje inne rozwiązanie?
Aktualizacja
Przeprowadziłem podstawowe testy przy użyciu przekierowania:
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
Odsyłacz zostaje utracony podczas łączenia ze strony https ze stroną przekierowującą http w mojej własnej domenie. Dlatego na przekierowaniu nie ma strony odsyłającej.
Origin
Powinien być w stanie nienaruszonym, nie może zmieścić się na przypadek użycia chociaż.Odpowiedzi:
Jak wspomniano w tej odpowiedzi, istnieje nowa metoda robienia tego: polityka odsyłająca / metatag.
Zobacz specyfikację i przykład w tym pytaniu .
źródło
Też miałem ten sam problem. Rozwiązuję, dodając metatag, jak poniżej, i będzie działał tylko w Chrome i Safari.
źródło
Niestety nie można odwoływać się przez HTTPS do stron korzystających z HTTP. Możesz jednak zrobić HTTPS na HTTPS lub HTTP na HTTPS.
Rozwiązaniem byłoby użycie wewnętrznego skryptu przekierowującego, który zamiast przekierowywać do gościa na HTTPS przekierowuje na HTTP, a następnie przekierowuje.
Na przykład:
<a href="http://www.yours.com/out.php?www.other.com">www.outboundsite.com</a>
ale to nie użyłoby oryginalnej strony odsyłającej.Inną możliwością jest użycie trackbacków zamiast odsyłaczy i, o ile wiem, działa to w HTTPS.
źródło
Byłem w stanie skonfigurować link ze strony HTTPS do strony HTTP w innej domenie i nadal przekazywać adres URL pierwszej strony jako strony odsyłającej, stosując następującą technikę.
Definicje
Strona początkowa : strona HTTPS, na której znajduje się link do strony docelowej hostowanej przez HTTP. W tym przykładzie:
https://example1.com/origin.html
Strona docelowa: strona HTTP, która ma dostęp do strony odsyłającej strony początkowej. W tym przykładzie:
http://example2.com/destination.html
Podstawowy plan
Powoduje to, że przekierowanie pochodzi ze strony HTTP strony początkowej:
Łącze na stronie początkowej HTTPS prowadzi do bieżącej strony, ale dodaje parametr zapytania do strony docelowej [1]. na przykład:
https://example1.com/origin.html?goto=http://example2.com/destination.html
Po kliknięciu łącza serwer w example1.com przerywa standardowe żądanie, gdy obecny jest parametr zapytania „goto”. To wtedy:
http://example1.com/origin.html
Serwer sprawdza każde żądanie pod kątem pliku cookie „goto”, a jeśli jest obecny, usunie plik cookie, a następnie wyświetli bardzo prostą stronę przekierowania. Ta strona zawiera [2]:
Notatki
[1] To podstawowe rozwiązanie to otwarty readresator i należy rozważyć ochronę przed złymi facetami używającymi parametru zapytania goto do przekierowywania UA w atakach phishingowych.
[2] Nie wszystkie przeglądarki wysyłają stronę odsyłającą podczas przekierowywania za pomocą przekierowania JS lub znacznika odświeżania meta. W moich testach IE8 i niższe nie przechodzą polecającego.
Nie jestem pewien, czy ta technika pozwoli robotom wyszukiwarek na podążanie za linkami. To nie jest ważne dla moich wymagań.
Jeśli UA ma wyłączone pliki cookie, spowoduje to ponowne przekierowanie do strony początkowej.
Zezwalanie na połączenia HTTP tylko dla przekierowań
Na moim serwerze mam regułę Apache do wymuszania HTTPS niezależnie od żądania:
Aby powyższa technika przekierowania działała, potrzebuję jakiegoś sposobu warunkowego zezwolenia na połączenia HTTP. Istnieje wiele sposobów, aby to zrobić. Uznałem, że ciasteczko będzie działać.
Plik cookie disable_ssl zostanie ustawiony w kroku 2, a następnie usunięty w kroku 3.
źródło
zgodnie z protokołem HTTP 1.1 http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3
Klienci NIE POWINNI zawierać pola nagłówka odsyłacza w (niezabezpieczonym) żądaniu HTTP, jeśli strona odsyłająca została przesłana za pomocą bezpiecznego
źródło
Wygląda na to, że to, czego chcesz, nie jest możliwe, więc możliwe obejście; jeśli strona docelowa korzysta z Google Analytics (lub kompatybilnego programu, uważam, że Piwik używa podobnej składni, a inne pakiety statystyk byłyby głupie, aby to zignorować), możesz wysłać parametry śledzenia, np. w linku do example.com
pojawi się to w ich GA wraz ze szczegółami, upewnij się, że wybierasz wartości, których jest mało prawdopodobne, aby ktokolwiek użył, abyś nie zmuszał ich do konfliktów / ani nie ukrywał swojego ruchu za kimś innym
Google ma przydatne narzędzie do tworzenia adresów URL tutaj http://support.google.com/analytics/answer/1033867?hl=pl
Aktualizacja - dotyczy: etykiety
Nie wiedząc więcej o charakterze ruchu, mogę mówić tylko ogólnie / osobiście ...
etykieta zawsze będzie w oku patrzącego. Bez tego myślę, że w GA przynajmniej prawdopodobnie pojawiłby się jako bezpośredni, a może (żaden zestaw) wypaczyłby ich liczby, aby wyglądać, jakby ich marka była większa niż jest. Osobiście wolę starannie wybraną kampanię, aby wiedzieć, skąd pochodzi ruch.
Możesz także spojrzeć na to, ponieważ jeśli prawie nie wysyłasz żadnego ruchu, prawdopodobnie nie zauważą, jeśli wyślesz ich dużo, prawdopodobnie nie będą narzekać! Jeśli tak, to zwykle można znaleźć kogoś innego, kto da darmowy ruch!
a jeśli jesteś bardzo konkretny, nie powinno to powodować problemów; kampania jako nazwa Twojej witryny i źródło jako może jej sekcja?
źródło