Convertir les liens HTTP en HTTPS
Conseils et script pour convertir un site web au protocole sécurisé SSL.
Un script est fourni pour transformer automatiquement les liens internes HTTP en HTTPS, sur une image locale du site. Si votre site utilise un CMS, il ne fonctionnera pas, mais le CMS fournit problablement des outils ou plugins de conversion.
Avant de transformer votre site http en https, vous devez savoir certaines choses...
- Si vous avez des boutons like de Facebook ou Twitter, ou autres sites sociaux, les compteurs seront remis à zéro parce que les URL ont changé!
Seul Google+ suit les redirections et transfère le décompte à la nouvelle URL. Pour les autres... - Si vous utilisez Disqus, tous les commentaires vont disparaitre pour la même raison.
Disqus offre trois outils de migration, un transfert de domaine, un mappage d'URL et un scanner qui reconnaît les redirections 301 et transfère les commentaires sur la nouvelle adresse.
Seul le dernier est vraiment utile, mais si on a créé les deux autres c'est sans doute qu'il ne fonctionne pas bien. Selon mon expérience, aucun des trois ne fonctionne en fait. - Tous vos liens internes et backlinks deviennent des redirections. Pour les backlinks, il n'y a rien à y faire (et cela ne pénalise pas le site), mais pour les liens internes, vous trouverez ici un script PHP pour convertir les URLs.
- Les vidéos intégrées disparaissent. Il faut que le lien sur une vidéo soit en https si la page est en https!
Le script fonctionne aussi pour les vidéos intégrées avec ce paramètre: www.youtube.com.
Redirections
Si vous avez un hébergement mutualisé, votre hébergeur peut vous proposer un certificat SSL payant ou gratuit avec Let's Encrypt.
Une fois que ce certificat vous est attribué, votre site existe en double, chaque page à une URL http et une URL https.
Cela créé un duplicate content qu'il est préférable d'éviter, et pour cela vous devez redirigez les pages http vers les pages https.
A cette fin, vous ajouterez un code de redirection dans le fichier .htaccess à la racine du site, si le serveur est Apache.
Code standard:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Ce code est proposé par GoDaddy et doit être universel. Si vous n'êtes pas sûr de passer définitivement au https, remplacez le code 301 par 302.
Si vous avez un hébergement OVH, il vous propose le code suivant:
Code OVH:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Remplacez "www.example.com" par le nom de votre site.
Pour un autre hébergeur, ou si le serveur n'est pas Apache, vous devriez consulter leur documentation.
Le script
Le script est écrit en PHP et requiert l'installation préalable de PHP 7. C'est un programme simple qui réalise un remplacement de chaines dans chaque fichier.
Avant de lancer le script sur le contenu de votre site, quelques précautions sont à prendre. Même si le code à parfaitement fonctionné sur les sites où je l'ai utilisé, tous les sites ne sont pas conçus de la même façon.
- Faites une copie du site dans un répertoire temporaire.
- Lancer le script.
- Verifiez que les nombres qui s'affichent sont cohérents.
- Regarder le code source des pages pour voir le résultat.
- Surtout les pages qui auraient un format particulier.
Si tout va bien vous pouvez mettre le contenu en ligne.
Téléchargement:
Pour utiliser le script:
- Télécharger l'archive et décompresser là dans un répertoire, par exemple dans c:.
- Allez dans le répertoire qui contient l'image de votre site.
- Tapez:
php c:/http2https/tohttps.php www.example.com
- Puis mettez le contenu en ligne.
Voir aussi...
Unredir. Ce script est complémentaire, il remplace les liens redirigés par les nouvelles URL, mais pour tous les domaines. Cependant il est beaucoup plus lent.