Considérez une page, http://example.com
qui peut être consultée publiquement et lorsqu'un utilisateur s'authentifie. Supposons maintenant que vous activez HTTPS pour chaque page lorsqu'un utilisateur se connecte à votre site Web, mais uniquement lorsqu'il est connecté. Votre page http://example.com
devient désormais accessible https://example.com
à tous les utilisateurs connectés. Si cet utilisateur connecté aime votre page et décide de s'y connecter via un article de blog ou un site Web de médias sociaux, il y a de fortes chances qu'il utilise la version HTTPS de l'URL.
Du point de vue du référencement, quelle est votre stratégie pour éviter les problèmes de contenu en double entre les deux URL?
Que doit-il se passer si un utilisateur arrive à l'URL HTTPS mais ne s'est pas connecté ou n'a pas de compte? Devrait-il y avoir une redirection vers la version HTTP? Si oui, comment le géreriez-vous?
Mon instinct est que pour toutes les pages qui peuvent être consultées à la fois publiquement et lorsque vous êtes connecté, la page doit d'abord détecter si l'utilisateur est connecté. S'il est connecté, il reste HTTPS ou utilise une redirection 302 de la version HTTP vers HTTPS. Si l'utilisateur n'est pas connecté et arrive à la version HTTPS de l'URL, il utilise une redirection 301 vers la version HTTP. Cependant, je souhaiterais une solution plus élégante ou efficace.
Edit : je supposais que si un utilisateur est connecté, chaque URL devrait être HTTPS (ou au moins, cela devrait être une option), mais comme j'ai fait un peu plus de recherche, cette hypothèse était peut-être erronée. La façon dont je vois les gens l'implémenter, c'est qu'ils n'activent le HTTPS que pour les pages qui envoient et reçoivent des données sensibles: connexion, paiement du panier, gestion du profil utilisateur, etc. J'essaie de déterminer quel modèle est le meilleur.
Apparemment, Google Mail donne aux utilisateurs la possibilité d'utiliser ou non HTTPS sur chaque page via un paramètre dans le profil de l'utilisateur. C'est certainement une option, mais je devrais encore aborder le comportement des pages accessibles au public pour tous les états d'authentification.
Parce que je construis un système de gestion de contenu qui sera utilisé par d'autres personnes, je dois m'assurer de bien faire les choses. Quels paramètres doivent être disponibles pour le propriétaire du site? À ce stade, je pense à un contrôle granulaire sur chaque page (qu'elle soit sécurisée ou non par SSL), puis sur l'ensemble du site. Cependant, donner ce niveau de contrôle peut être une erreur si les gens ne comprennent pas tous les problèmes et peuvent finir par causer des problèmes de sécurité. C'est peut-être là le premier problème. Quels sont les niveaux de contrôle appropriés et quels sont les paramètres par défaut intelligents? La seconde est la façon dont les pages doivent se comporter pour l'utilisateur. Du point de vue du référencement, je pense que le processus que j'ai décrit ci-dessus ou en utilisant lerel="canonical"
(comme jmb l'a suggéré) fonctionnerait, mais il est également essentiel de définir le comportement de la page afin qu'elle soit sécurisée et transparente.