Meu site é 100% https. Eu tenho links para outros domínios http. O cabeçalho do referenciador não está definido ao vincular de uma página https a uma página http. De http://en.wikipedia.org/wiki/HTTP_referrer
Se um site for acessado a partir de uma conexão HTTP segura (HTTPS) e um link apontar para qualquer lugar, exceto outro local seguro, o campo de referência não será enviado.
Prefiro que outros domínios possam ver o referenciador, para que saibam que o tráfego vem do meu domínio. Existe uma maneira de forçar esse cabeçalho ou existe outra solução?
Atualizar
Fiz alguns testes básicos usando um redirecionamento:
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
O referenciador é perdido ao vincular de uma página https a uma página de redirecionamento http no meu próprio domínio. Portanto, não há referenciador no redirecionamento.
Origin
deve estar intacto, mas pode não se encaixar no seu caso de uso.Respostas:
Como mencionado nesta resposta, há um novo método para fazer isso: Política de referência / metatag.
Veja especificações e exemplo nestas perguntas e respostas .
fonte
Eu também tive esse mesmo problema. Eu resolvo adicionando uma meta tag como abaixo e funcionará apenas no Chrome e Safari.
fonte
Infelizmente você não pode se referir em HTTPS a sites usando HTTP. No entanto, você pode fazer HTTPS para HTTPS ou HTTP para HTTPS.
Uma solução alternativa seria usar um script de redirecionamento interno que, em vez de direcionar o link para o visitante no HTTPS, você redireciona para HTTP e, em seguida, ele redireciona para fora.
Por exemplo:
<a href="http://www.yours.com/out.php?www.other.com">www.outboundsite.com</a>
mas isso não usaria o referenciador original.Outra possibilidade é usar trackbacks em vez de referenciadores e, tanto quanto sei, isso funciona em HTTPS.
fonte
Consegui configurar um link de uma página HTTPS para uma página HTTP em outro domínio e ainda transmitir o URL da primeira página como um referenciador usando a seguinte técnica.
Definições
Página de origem : página HTTPS na qual o link para a página de destino hospedado HTTP. Neste exemplo:
https://example1.com/origin.html
Página de destino : página HTTP que tem acesso ao referenciador da página de origem. Neste exemplo:
http://example2.com/destination.html
Plano básico
Isso tem o efeito de fazer o redirecionamento vir da versão HTTP da página de origem:
O link na página de origem HTTPS vincula à página atual, mas adiciona um parâmetro de consulta para a página de destino [1]. por exemplo:
https://example1.com/origin.html?goto=http://example2.com/destination.html
Quando o link é clicado, o servidor em example1.com interrompe a solicitação padrão quando o parâmetro de consulta 'goto' está presente. Isso então:
http://example1.com/origin.html
O servidor verifica todas as solicitações de um cookie 'goto' e, se houver, limpa o cookie e, em seguida, renderiza uma página de redirecionamento muito simples. Esta página contém [2]:
Notas
[1] Esta solução básica é um redirecionador aberto e deve-se considerar a proteção contra bandidos usando o parâmetro goto query para redirecionar UAs em ataques de phishing.
[2] Nem todos os navegadores enviarão o referenciador ao redirecionar por meio de uma tag de redirecionamento JS ou meta refresh. No meu teste IE8 e inferior não passa o referenciador.
Não tenho certeza se essa técnica permitirá que os rastreadores de mecanismos de pesquisa sigam os links. Isso não é importante para meus requisitos.
Se o UA tiver cookies desativados, isso será redirecionado para a página de origem novamente.
Permitindo conexões HTTP apenas para redirecionamentos
No meu servidor, tenho uma regra do Apache para aplicar HTTPS, independentemente da solicitação:
Para que a técnica de redirecionamento acima funcione, preciso de uma maneira de permitir condicionalmente conexões HTTP. Existem diversas formas de fazer isto. Eu decidi que um cookie funcionaria.
O cookie disable_ssl seria definido na etapa 2 e excluído na etapa 3.
fonte
de acordo com o protocolo HTTP 1.1 http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3
Os clientes não devem incluir um campo de cabeçalho de referência em uma solicitação HTTP (não segura) se a página de referência foi transferida com um
fonte
Parece que o que você deseja não é possível, portanto, uma possível solução alternativa; se o site de destino estiver usando o Google Analytics (ou um programa compatível, acredito que o Piwik use sintaxe semelhante, e outros pacotes de estatísticas seriam tolos em ignorar isso), você poderá enviar os parâmetros de rastreamento, por exemplo, no seu link para example.com
isso será exibido no GA com os detalhes, certifique-se de escolher valores que é improvável que mais alguém use, para não forçá-los a entrar em conflito / ou ocultar seu tráfego atrás de outras pessoas
O Google cria um útil criador de URL aqui http://support.google.com/analytics/answer/1033867?hl=en
Atualização - re: etiqueta
Sem saber mais sobre a natureza do tráfego, só posso falar em geral / pessoalmente ...
etiqueta sempre estará nos olhos de quem vê. Sem isso, acho que no GA, pelo menos, provavelmente apareceria como direto, ou talvez (nenhum conjunto), o que distorceria seus números para fazer parecer que sua marca era maior do que é. Pessoalmente, prefiro uma campanha cuidadosamente escolhida para saber de onde vem o tráfego.
Você também pode ver como, se você dificilmente enviar tráfego a eles, eles provavelmente não perceberão, se você enviar muito, provavelmente não reclamará! Se o fizerem, normalmente você poderá encontrar outra pessoa para dar tráfego grátis!
e se você for muito específico, não deverá causar problemas; campanha como o nome do seu site e origem como a seção do seu site, talvez?
fonte