Migrer WordPress d’un répertoire à la racine d’un domaine

Migrer WordPress

Si vous avez installé WordPress dans un répertoire, vous vous êtes peut-être un jour posé la question suivante : “et si je transférais tout à la racine du domaine ?”.

Si c’est le cas, sachez que cette migration ne prend que quelques minutes. 20 minutes environ sont nécessaires et les anciens liens seront redirigés automatiquement vers les nouveaux, sans risque d’erreur 404.

Le codex a bien une page qui explique comment migrer WordPress mais il y a beaucoup plus simple et moins risqué : je vous propose donc 5 étapes et non 12.

Étape 1 : sauvegarde des fichiers et de la base de données

Commencez par faire une sauvegarde de tous vos fichiers et de votre base de données. Si jamais quelque chose tournait mal, vous pourriez toujours revenir à la situation précédente.

Je vous conseille même de copier votre base de données vers une nouvelle base de données si vous en avez la possibilité.

Étape 2 : mise à jour de la nouvelle adresse dans la base de données

Sur cette nouvelle base de données, remplacez :

https://example.com/blogCode language: JavaScript (javascript)

Par :

https://example.comCode language: JavaScript (javascript)

Notez l’absence de slash final (/). J’ai exporté ma base au format .sql, effectué les changements d’URL puis réimporté la base de données. Selon la taille de votre blog, cela peut représenter quelques milliers de remplacements (environ 4 000 pour SkyMinds). On considère que la base de données est désormais prête.

Étape 3 : édition du fichier de configuration WordPress

Nous allons maintenant nous occuper du fichier de configuration WordPress. Éditez wp-config.php et mettez à jour les paramètres de connexion à la nouvelle base de donnée. Ensuite, si ces lignes n’existent pas, ajoutez-les :

define('WP_SITEURL', 'https://example.com'); 
define('WP_HOME', 'https://example.com'); Code language: JavaScript (javascript)

Ajouter ces deux lignes directement dans le fichier de configuration nous évite d’avoir à changer ces valeurs depuis l’interface d’administration, ce qui amène souvent à des erreurs.

C’est plus simple et cela met à jour la base de données automatiquement. Ces deux nouvelles options ont été ajoutées dans WordPress.

Étape 4 : copie des fichiers à la racine du domaine

Copiez ou déplacez tous les fichiers de votre installation WordPress vers la racine de votre domaine.

Assurez-vous d’avoir déplacé les fichiers qui s’y trouvaient au préalable afin de ne perdre aucun fichier (comme le .htaccess précédent par exemple). Le déplacement des fichiers via FTP ne prend que quelques secondes.

Note : jetez un coup d’œil au site – si vous apercevez des signes cabalistiques en lieu et place des accents ou caractères spéciaux, éditez wp-config.php et commentez la ligne DB-CHARSET comme ceci :

//define('DB_CHARSET', 'utf8');Code language: JSON / JSON with Comments (json)

Étape 5 : mise à jour des permaliens

Il vous reste maintenant à mettre à jour vos permalinks car ils reflètent encore votre ancienne installation.

Allez dans Réglages > Permaliens (Settings > Permalinks) dans l’administration de WordPress et choisissez une structure identique à celle que vous aviez précédemment.

Cela aura pour avantage de rendre la redirection de l’ancien blog plus aisée.

Pour rediriger tous vos anciens liens, il suffit d’éditer le fichier .htaccess à la racine de votre domaine et de placer le code suivant au début du ficher :

 # Redirection du blog vers la racine (par Matt - www.skyminds.net)
RewriteEngine On
# On redirige tous les liens
Redirect permanent /blog/ https://example.com/Code language: PHP (php)

Pour ceux qui sont préoccupés par leur référencement, sachez que Google a réindexé tout notre contenu en moins de deux jours grâce à cette redirection. Plutôt pratique et complètement transparent pour l’utilisateur !

Voilà, tous vos liens sont désormais redirigés silencieusement vers leur nouvel emplacement et les flux RSS ne subissent aucune interruption.

Il ne vous reste plus qu’à vous assurer qu’il n’existe aucune référence à votre ancienne URL : regardez du côté des fichiers de votre thème ou dans les plugins ‘maison’.

Les oublis éventuels pourront être tracés via les fichiers logs du serveur.

Bonne migration !

Recherchez-vous un expert WordPress ou WooCommerce sur qui vous pouvez compter? Ne cherchez plus.

Faites confiance à mon expertise »

Articles conseillés :

Matt

Matt Biscay est développeur WordPress et WooCommerce certifié chez Codeable, ainsi que sysadmin qualifié et enseignant-chercheur. Passionné par le code performant et les solutions sécurisées, je m'efforce d'offrir une expérience utilisateur exceptionnelle sur chaque projet.

Vous avez aimé cet article ? Vous avez un projet en tête et vous pensez que je pourrais vous aider à le concrétiser ? N'hésitez pas à me contacter, je serais ravi de discuter avec vous de votre projet !

17 pensées sur “Migrer WordPress d’un répertoire à la racine d’un domaine”

  1. Bonjour,

    Merci pour votre aide. Tout a fonctionné, il y a juste la dernière étape que me bloque. Je ne vois pas qu’est ce que vous voulez dire par : “Allez dans Administration > Options > Permalinks et choisissez une structure identique à celle que vous aviez précédemment”

    A quel endroit exactement je peux trouver cela ? Si c’est dans l’administration wordpress je ne le vois pas… Merci de m’éclairer :-)

    Bon weekend !

    Reply
    • Bonjour,

      Cela a changé depuis – cela se trouve maintenant sous Réglages > Permaliens (Settings > Permalinks dans la version anglophone) dans l’administration de WordPress.

      Reply
  2. Bonjour Matt,

    Je veux migrer mon site aaaa .fr dans un répertoire aaaa .fr/blog .

    Je dois donc faire la meme manipulation que toi mais au niveau du htacess comment ca se passe ?

    Reply
  3. non ce que je veux faire c’est deplacer le blog qui est a la racine dans le repertoire blog et a la racine faire une page de presentation mais rien a voir avec le blog

    Reply
    • Ah, je vois. Essaie ceci :

      RewriteCond %{REQUEST_URI} !^index.(.*)?$
      RewriteCond {REQUEST_FILENAME} !-d
      RewriteRule ^/(.*)$ http://%{SERVER_NAME}/folder/$1 [L,R]
      Reply
  4. Merci ! ca marche. Une dernière question.
    J’ai un site expiré. J’ai racheté le ndd. Je sais qu’il y avait pleins de pages qui recevaient du trafic. Au lieu de tout refaire à zero, je veux faire une redirection de l’ensemble des anciennes pages du site vers la home du nouveau site.
    Comment est ce possible ?
    Est ce que je dois faire une redirection de ce genre:

    Redirect 301 / http://www.example.com/

    ?

    Merci

    Reply
    • Salut,

      Il faut rediriger vers une page directe, celle de l’index, comme ceci :

      Redirect 301 / 

      sinon, cela renverra vers des pages inexistantes (selon l’ancienne structure).

      Reply
  5. Salut, Super tuto merci. J’ai déjà utilisé pour plusieurs migrations et jusqu’à aujourd’hui aucun soucis !

    Seul hic aujourd’hui justement… J’ai réalisé la migration comme d’habitude, le site fonctionne correctement mais je n’arrive plus à me connecter à l’admin ! J’essaye donc de changer mon mot de passe , toujours rien.

    En fait j’ai l’impression qu’il fait une boucle. Il se connecte et reviens sur la page d’admin… Impossible de se reconnecter.

    Tu vois d’où ça peut venir ?

    Merci d’avance. Bonne journée.

    Reply
    • Pour info j’ai trouver la solution.
      Si jamais ça vous arrive comme moi, il suffit juste, tout en haut de votre wp-config.php de rajouter cette ligne

      @define(‘ADMIN_COOKIE_PATH’, ‘/’);

      Et ça marche parfaitement !

      Bonne migration.

      Reply
      • Merci pour l’astuce Drag!

        J’allais te demander si tu avais touché à la configuration des cookies mais je ne connaissais pas cette variable. Cela en aidera plus d’un(e), merci :)

  6. Salut, merci pour le tuto.

    J’ai un problème avec la table wp_commentmeta lorsque j’importe ma base de données modifiée :
    Error #1062 – Duplicate entry ‘1216’ for key ‘PIMARY’

    Sais-tu comment régler ça ?

    Merci :)

    Bonne journée

    Reply

Opinions