web-dev-qa-db-fra.com

Apache n'enregistrant pas le référent dans tous les cas

J'ai un site Wordpress hébergé sur Vultr, utilisant Plesk Onyx avec Apache + Nginx. J'ai fait cette même configuration pour d'autres sites et je n'ai jamais eu de problèmes, mais pour ce nouveau site, j'en vois comportement étrange lorsque vous cliquez sur des liens vers le site.

J'ai remarqué que Google Analytics ne signale jamais le trafic comme provenant d'une source de référence. Tout le trafic que je m'attends à montrer en tant que parrainage s'affiche en direct. Après avoir consulté mes journaux d'accès Apache, il semble que lorsque je clique sur un lien à partir d'autres sites Web, aucun référent ne soit enregistré.

Ce n'est pas le cas pour tous les liens. Les plateformes sociales comme Twitter, Instagram et Facebook sont toutes enregistrées avec les informations de référence attendues. En outre, le trafic organique et le trafic CPC/Ads apparaissent également comme prévu. C'est juste une poignée de liens provenant d'autres sites qui ne se connectent pas.

Voici quelques exemples d'entrées des journaux d'accès. Certains contiennent un référent valide (Twitter, par exemple) tandis que d'autres contiennent simplement un -. Pour certains de ces cas, je suivais le journal d'accès en cliquant sur un lien d'un autre site, donc je sais il devrait avoir un référent valide:

X.X.X.X - - [10/Jun/2019:03:06:10 +0000] "GET / HTTP/1.0" 200 12153 "https://Twitter.com/PxJVBrEB7T" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:67.0) Gecko/20100101 Firefox/67.0"
X.X.X.X - - [10/Jun/2019:03:12:37 +0000] "GET / HTTP/1.0" 200 13535 "https://Twitter.com/PTVIpLWqE9" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:67.0) Gecko/20100101 Firefox/67.0"
X.X.X.X - - [10/Jun/2019:03:50:39 +0000] "GET / HTTP/1.0" 200 12308 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:67.0) Gecko/20100101 Firefox/67.0"

Est-il possible qu'Apache soit mal configuré et abandonne les informations du référent? Ou est-il possible que cela soit lié aux sites référents?

Il existe plusieurs sites Web référents où les liens ne s'affichent pas correctement dans le journal d'accès, donc je soupçonne que c'est du côté du serveur, mais je ne sais pas quoi vérifier de plus.

1
Mike

... en cliquant sur un lien d'un autre site, je sais qu'il doit avoir un référent valide

La seule façon de "savoir" s'il doit avoir un référent valide consigné est si vous voyez l'en-tête HTTP Referer dans le cadre de la demande.

Bien qu'il soit possible pour l'utilisateur de simplement bloquer l'en-tête Referer que le navigateur envoie (probablement pas le problème dans votre cas), le site Web peut également bloquer trivialement l'envoi de l'en-tête Referer en utilisant le Referrer-Policy En-tête de réponse HTTP. Ou tout simplement en ajoutant le rel="noreferrer" attribut directement à l'ancre. Ces techniques sont prises en charge par tous les principaux navigateurs de nos jours.

Notez que, par défaut, le navigateur n'envoie pas l'en-tête Referer lorsque vous naviguez de HTTPS vers HTTP. Ce qui correspond à Referrer-Policy: no-referrer-when-downgrade. (Bien que cela ne semble pas être le problème dans votre cas, regardez votre extrait de journal.)

Il s'agit de la cause la plus probable du Referer non enregistré - il n'est pas envoyé dans la demande. D'autant plus que vous voyez le Referer en cours de connexion pour certains sites.

Bien qu'il soit techniquement possible sur Apache d'avoir un format de journal personnalisé basé sur différentes demandes - il semble très peu probable que ce soit la cause. Ce serait une action très délibérée, plutôt qu'une simple "mauvaise configuration" de l'OMI.

1
MrWhite