Ce n’est pas la première fois que je vous parle de WordPress et je risque de vous en parler encore beaucoup tant ce CMS est pratique. Le revers de la médaille, c’est qu’avec les thèmes pas forcément bien conçus et les extensions qui peuvent avoir des failles, on peut vite faire une erreur qui poursuivra son site longtemps. D’ailleurs pour la sécurité de base, je vous conseille d’aller voir cet article sur Wordfence, car c’est vraiment important, et vous dormirez peut-être mieux la nuit. Bon, ici, on ne va pas parler de tout ça aujourd’hui, mais nous allons voir comment changer un nom de domaine. Nous allons partir du principe qu’il s’agit donc d’un site sous WordPress forcément, et qui serait hébergé sur un serveur Linux Ubuntu / Debian avec comme serveur web l’excellent NGINX.
Parfois, même si ce n’est pas forcément recommandé, il faut changer de nom de domaine pour son site WordPress. Je dis ça, car en cas de changement, il faut alors vérifier de nombreux points avant et après ce changement de nom de domaine. C’est indispensable pour ne pas casser son référencement sur les moteurs de recherche. Cette fois, on ne va pas parler de SEO et des éventuelles conséquences pour votre site, mais plutôt comment il faut faire techniquement pour opérer ce changement vers un nouveau nom de domaine.
Vous allez voir, si vous avez l’habitude de vous connecter à un serveur en SSH, changer des enregistrement DNS et manipuler une base de données, ça devrait aller sans problèmes pour vous. Sinon, vous pouvez chercher des informations sur les différentes étapes si vous ne connaissez pas, ce sont des manipulations assez courantes et bien documentées sur le web. Croyez-moi ce ne sont pas des compétences que vous allez apprendre pour rien et ça vous sera utile pour très longtemps.
Que faire pour changer le nom de domaine de son site WordPress ?
La première étape, une fois que vous avez acheté votre nouveau nom de domaine est de le faire pointer vers votre serveur. Il faut faire pointer l’enregistrement A de la racine du domaine ou sous domaine vers l’adresse IP de votre VPS ou serveur dédié.
Sur OVH qui est l’un des plus utilisés en France, une fois sur la zone DNS de votre nom de domaine, vous pouvez alors remplacer l’adresse IP par défaut avec celle de votre serveur :
Normalement, si vous avez un autre registar pour votre nom de domaine, la présentation de cette partie devrait fortement ressembler à ce que vous voyez ici. Bien évidemment, si vous voulez avoir votre site à la racine du nom de domaine, il faudra laisser la partie avant votre nom de domaine vide.
Maintenant, je vais me connecter sur mon serveur web avec SSH et créer mon nouveau site avec NGINX sans toucher à rien d’autre de spécial. Avec un fichier HTML de base à la racine du dossier que je cible pour pouvoir afficher une page basique.
Ensuite, je passe le nom de domaine en HTTPS avec Let’s Encrypt qui modifie alors automatiquement le fichier de configuration NGINX de mon site :
Enfin, pour terminer avec la modification de la configuration de NGINX, je fais pointer mon nom de domaine vers le dossier du WordPress déjà installé :
Maintenant, que nous avons fait ça, si on essaye d’appeler notre nouveau nom de domaine directement dans le navigateur, cela ne fonctionnera pas encore. En effet, la configuration de WordPress n’est plus adaptée. Il faut que l’on indique à WordPress quel est le nouveau nom de domaine à utiliser pour servir les pages. Pour cela, il y a plusieurs possibilités. La technique que je préfère de loin, car elle ne m’a jamais fait défaut, c’est d’aller directement modifier 2 enregistrements dans la base de données.
La table qui contient ces informations qui sont très importantes ici est wp_options. Ce sont précisément les deux premières lignes qu’il va falloir modifier. Pour ne pas se tromper, on va déjà regarder ce quelles contionnent pour être sur de bien modifier ce qu’il faut. Vous pouvez alors lancer la requête SQL suivante :
select * from wp_options limit 2;
La réponse me renvoie bien mon ancien nom de domaine :
Pour mettre à jour vers le nouveau nom de domaine, il va falloir update cette table wp_options. Pour rester très prudent, je vais alors lancer les deux requêtes SQL de mise à jour sur cette table wp_options :
update wp_options set option_value = 'https://monnouveaundd.com' where option_id = 1;
update wp_options set option_value = 'https://monnouveaundd.com' where option_id = 2;
À présent, si j’essaye d’appeler l’ancienne URL, vu que je n’ai pas coupé l’ancien nom de domaine sur NGINX, j’arrive sur la nouvelle URL. Si j’appelle le nouveau nom de domaine, j’arrive directement sur le site sans soucis. Vous pouvez d’ailleurs voir l’application de ce réglage directement dans WordPress. Connectez-vous à l’administration de votre WordPress, allez dans Réglages puis Général et vous verrez alors le nouveau nom de domaine que vous avez réglé dans la base de données. Sinon vous pouvez y accéder directement en appelant ce lien : https://votre-site.com/wp-admin/options-general.php
Attention, ne changez surtout pas le nom de domaine ici dans l’administration, sans la moindre configuration et sauvegarde au préalable sur un coup de tête ! Surtout si vous n’êtes pas à l’aise avec tout ça. En effet, si vous changez le nom de domaine ici sans avoir fait aucune autre action particulière, vous allez faire tomber votre site, mais en plus, vous ne pourrez plus vous connecter via le navigateur sur votre administration WordPress ! Il faudra alors aller dans la base de données en dur pour remettre l’URL qui fonctionnait encore jusqu’à présent. Faites donc bien attention à ce que vous faites, changer de nom de domaine ce n’est pas anodin ! Toucher à ce genre de réglage directement dans le panel d’administration non plus, ce n’est pas une bonne idée.
Voilà vous avez changé le nom de domaine de votre site WordPress de la manière la plus propre techniquement selon moi. Bien évidemment, cela ne prend pas en compte la partie SEO et je vous conseille de bien vous renseigner avant de faire ce genre de changement.