HAhaha le titre putaclic.
La seule solution pour réduire le temps de propagation d’une nouvelle configuration DNS est de baisser la valeur TTL de votre enregistrement.
TTL = Time To Live = La durée de péremption de votre enregistrement.
Sur le papier, cela veux dire que vous dites aux utilisateurs de vos enregistrements DNS (les FAI et fournisseurs de résolveur DNS), qu’après cette durée, ils doivent systématiquement consulter l’enregistrement pour voir s’il y a du changement.
Dans les faits, ils font ce qu’ils veulent.
Vous devez leur faire confiance.
Et quand bien même, dans les meilleurs des cas, en réduisant au minimum ce TTL (généralement 5mn), cela veux dire que vous aurez une double présence sur internet pendant quelques minutes !
Vous aurez des visiteurs sur votre nouveau serveur et d’autres sur votre ancien !
Et vous sur l’un ou sur l’autre…
Si vous avez mal géré votre affaire, il se peut même que des clients passent commandes sur votre ancien site alors que vous, vous êtes déjà passé sur le nouveau.
La belle affaire…
C’est pour cela que parfois on voit des sites mettre en place des pages « En cours de mise à jour » à la merde.
La type de page qui n’a une raison d’exister que dans mes pires cauchemars.
Donc venons en aux faits : Comment passer d’un serveur à un autre de manière totalement transplante et surtout totalement immédiate.
Il faut utiliser un PROXY.
Un proxy, c’est un serveur qui s’intercale entre votre serveur et vos visiteurs.
Le proxy leur sert la soupe en quelque sorte.
Vos visiteurs ne mettent plus jamais les pieds sur votre serveur.
Vos enregistrements DNS pointent vers ce serveur PROXY. Et ne changent jamais.
Nos enregistrements DNS n’ont pas bougé depuis plus de 7 ans. Alors qu’on a changé de serveur deux fois et fait une migration durant ce laps de temps.
Si vous devez changer de serveur, vous dites juste à votre PROXY de ne plus piocher sur le serveur XX, mais sur le XY. C’est fait immédiatement.
Mais quand vous entendez proxy, vous faites la grimasse, car proxy est un mot qui fait peur.
(Et j’ai mis une illustration bien dégueulasse pour accentuer cette peur)
Levons toutes peurs.
Cloudflare est un proxy.
Cloudflare est un service très simple à utiliser.
Cloudflare vous rends pas mal d’autres services.
La version gratuite de Cloudflare est suffisante pour 95% des cas d’utilisations.
Donc pour faire simple :
Même si vous pensez ne pas avoir besoin de Cloudflare, utilisez ce service quand même.
Vous serez bien content de l’avoir à un moment ou à un autre.
PS : Sur Twitter on m’a indiqué qu’on ne pouvait pas parler de « propagation ».
Mais avouez que « Comment réduire les temps de réjuvénation DNS à zéro » c’est beaucoup moins putaclic comme titre.
PS2 : J’ai utilisé la désignation « proxy ». Le terme exact pour ce cas de figure est reverse proxy. Merci René pour cette précision.
Après 9 ans de travail acharné, l’éléphant va enfin accoucher d’une souris.
ENFIN, demain, sera mis en ligne la nouvelle version de Jardiforet.
Je vous passe les raisons qui ont fait trainer cette migration pendant 9 longues années.
Allons droit au but.
Je vais vous donner deux/trois trucs dans les jours à venir qu’on a utilisé pour effectuer cette migration de manière aussi fluide que possible.
Aujourd’hui je vais vous dévoiler comment on a créé notre fichier de redirection d’URL de plusieurs milliers de pages en quelques heures de travail à peine.
(Et quand je dis quelques, je parle de deux heures tout au plus, car on avait une galette des rois à manger)
Pré-requis :
Vous avez exporté tous vos produits de votre ancien CMS et tout réimporté dans votre nouveau CMS.
- Scrapez votre ancien et votre nouveau site avec Xenu ;
- Exportez en CSV. Ne gardez que les colonnes URL et Title des pages type text/html ;
- Transformez vos CSV en Array ;
- Passez le tout dans le script PHP à copier ci-dessous ;
- C’est terminé. Merci au revoir.
Xenu Sleuth, c’est un vieux logiciel qui permet de détecter les liens cassés sur un site internet.
Il est pas mal dans l’utilisation qu’on en fait ici, car il va visiter chaque page de votre site.
Il peut même se loguer à un htpasswd pour pouvoir visiter de fond en comble un serveur de preprod.
Attention cependant, même si vous n’avez rien à faire, cette partie peut prendre plusieurs heures suivant l’architecture de votre site.
Donc ne vous y prenez pas 5mn avant.
Une fois les deux sites entièrement scrapés, vous pouvez exporter les résultats en CSV.
Ainsi il est simple de ne garder que les lignes des éléments ayant pour type text/html (afin de supprimer toutes les images, CSS, & Co) et de faire valser toutes les colonnes qui ne servent à rien.
Dans les faits, il suffit de garder la colonne URL et la colonne TITLE.
Charge à vous de retravailler un peu la colonne TITLE si vous avez changé de configuration Title entre vos deux sites.
Une fois les deux fichiers éclaircis, on va les transformer en ARRAY (tableau informatique) à l’aide du concatenate de votre tableur, sous le format :
Clés = Title, Valeur = URL. Soit ‘Title’ => ‘Url’,
Petit truc PHP au passage.
Pour un fichier qui potentiellement peut être énorme, privilégiez les simples quote aux doubles.
En effet, ce qui est entre simple quote n’est pas interprété par PHP, alors que PHP tente d’interpréter ce qui est entre double quote.
Avec un gros fichier cela demander bien plus de ressource à votre serveur. Pour rien.
Donc à la fin, on se retrouve avec deux fichiers (ancien.php et nouveau.php) qui contiennent un truc du genre :
<?php
$ancien = [
'Page 1' => 'https://www.example.com/ma-page-1.html',
'Page 2' => 'https://www.example.com/ma-page-2.html',
…
'Page 8755' => 'https://www.example.com/ma-page-8755.html'
];
?>
et
<?php
$nouveau = [
'Page 1' => 'https://www.example.com/page-1/',
'Page 2' => 'https://www.example.com/page-2/',
…
'Page 8755' => 'https://www.example.com/page-8755/'
];
?>
Pour coller facilement mes données dans un tableur, je vais séparer mes données par des TAB.
Ainsi chaque élément sera dans sa colonne.
Notre module d’import nous demande 5 colonnes. Donc c’est parti pour créer une ligne par URL sous le format :
Titre [tab] Type de redirection [tab] Boolean sans importance [tab] Ancienne URL [tab] Nouvelle URL.
J’ai donc créé un petit script qui va comparer les deux fichiers précédents et nous sortir le tout sous le bon format prêt pour un copier-coller :
<?php
include('ancien.php'); // On appelle les deux fichiers avec leurs Array respectifs
include('nouveau.php');
$i=0; // On définit un petit compteur à 0. C'est important pour la suite
foreach($ancien as $ancienurl){ // On fait une boucle pour chaque ancienne URL
$titre = array_keys($ancien)[$i]; // On récupère la valeur de la clé (qui est le Title) pour pouvoir la rechercher dans les nouvelles URL
echo $titre."\t301\t1\t".$ancienurl."\t".$nouveau[$titre]."\n"; // Titre [tab] 301 [tab] 1 [tab] Ancienne URL [tab] Nouvelle URL trouvée dans l'Array des nouvelles URL à l'aide de la clé commune. \t correspond à un caractere TAB et\n en fin de ligne à un retour à la ligne.
$i++; // On incrémente le compteur
}
?>
Vous avez juste à faire copier-coller dans votre tableur préféré.
Ce qui est intéressant, c’est quand le système ne trouve pas de correspondance, la colonne des nouvelles URLs est vide.
Vous pouvez exporter ces lignes pour les travailler plus tard à la main.
Ou pas. C’est beau une 404. Ne trouvez-vous pas ?
Voilà, je vous ai fait gagner plusieurs heures de travail.
Vous pouvez m’aduler.
Suite à une discussion sur le groupe interne du podcast Goood Morning Web à propos de la création frauduleuse de NFT, je me suis questionné sur l’origine de la propriété.
Quand et qui est la première personne à s’être dit : « Ce gourdin est le mien, et pas celui de la communauté ».
Et plus loin, quand et qui est la première personne à s’être dit : « Je vais vendre ce bout de terrain ».
La nature lui a octroyé, mais il s’est dit « Tiens je vais la vendre ».
Un peu comme un artisan taxi qui s’est vu octroyer gratuitement une licence et qui se dit « tient je vais la vendre », et quand les licences ont perdu de la valeur avec l’arrivée des VTC à se dire « si je demandais des dédommagements à l’état… ». Pardon, je m’égare…
Pour la vraie réponse, je ne sais pas si on trouvera la réponse.
Par contre, au vu de la (relative) récence de l’événement, je pense que le primo-partage contemporain des terres américaines doit être documenté.
Durant cette recherche, je suis tombé sur Wikipedia et sur un article sur le droit de propriété.
Ça commence par
Il s’agit d’un droit naturel garanti par la Constitution.
À mes yeux, il n’y a pourtant rien qui me semble moins naturel que la propriété.
À côté de la propriété, même le Fanta paraît plus naturel.
À l’heure où on se dit que d’ici à quelques années, à l’aide de l’intelligence artificielle, on va pouvoir discuter avec les animaux (désolé je n’ai pas retrouvé l’article), je me dis que même si on se parle on n’arrivera néanmoins jamais à communiquer.