Déplacer WordPress vers un nouveau Nom de Domaine

Les déménagements sont les mouvances de l’existence. Ça bouleverse, ça empêche l’habitude _Louise Portal

Une problématique que l’on rencontre lorsque l’on souhaite changer l’URL de son blog: Comment déplacer en toute simplicité son site WordPress d’un nom de domaine à un autre ?

Déplacer WordPress simplementVous déménagez ? Pensez à modifier votre base de données WordPress !

 

Déménager son site WordPress

On a parfois besoin de modifier l’URL de son domaine ou simplement d’en changer pour le rendre plus efficace ou pour mieux refléter l’orientation du blog.

Par exemple si vous avez, lors de votre installation WordPress, déclaré monsite.com/wordpress/ comme adresse de votre blog et cela ne vous plait pas… Vous souhaiteriez que votre blog s’affiche dès la racine sur monsite.com. Voici comment faire !

1/ Changer l’URL de monsite.com/wordpress/ en monsite.com

Si vous décidez de changer l’emplacement URL de votre blog WordPress en raison d’un changement de nom de domaine (http://www.ancien-domaine.com vers http://www.nouveau-domaine.com) ou pourquoi pas dans un sous-répertoire (http://www.domaine.com  vers http://www.domaine.com/blog), il y a quelques mesures simples à prendre, pour s’assurer d’une migration correcte et de ne rompre aucun lien.

Pas besoin de tout réinstaller; un déplacement de dossier, quelques modifications de fichiers suffiront.

Modifier la configuration de WordPress

Dans le menu “Réglages>général”, changez les paramètres “Adresse web de WordPress” et “Adresse web du site”. Vous devez mettre la nouvelle adresse du site “monsite.com”, en principe vous passez donc de “monsite.com/wordpress/” pour les deux paramètres en “monsite.com”.

Options generales WordPress

Enregistrez les modifications. Vous pouvez avoir, à partir de ce moment là, des erreurs type “fichier introuvable”, c’est sans importance.

Copier les fichiers “index.php” & “.htaccess”

Via FTP, vous devez à présent copier le fichier “index.php” et le fichier “.htaccess” depuis le dossier “WordPress” vers la racine de votre site. Nota: Si vous n’utilisez pas les pretty permalink, vous n’aurez peut être pas de fichier “.htaccess”.

Modifier votre “index.php”

Télécharger votre fichier “index.php” (pensez à faire une copie de sauvegarde) et modifier le dans votre éditeur de texte.
Vous devez modifier la ligne:

require('./wp-blog-header.php');
en
require('./wordpress/wp-blog-header.php');

Sauvegardez et téléchargez à nouveau le fichier modifié en écrasant celui sur le FTP.
Voilà en 2 clics et 3 mouvements, l’opération déménagement est terminée!

A savoir

L’adresse d’accès à l’interface d’administration de WordPress n’a pas changée. C’est toujours une adresse de type “http://monsite.com/wordpress/wp-admin”. En revanche, l’adresse du site, elle, a changé pour “http://monsite.com”.

Attention, cette manipulation s’effectue à vos risques et périls, aucun support ne sera effectué ici…  Cet article ne traite pas du déplacement d’un blog WordPress à partir d’un serveur ou hébergement vers un autre hébergeur… Pour cela consultez notre article Comment migrer facilement son site WordPress ? et profitez en pour passer votre WordPress en HTTS.

 

2/ Déplacer WordPress vers un nouveau Nom de Domaine

Ce qui doit être modifié ou pas

Avant toute chose et en préambule, n’oubliez surtout pas d’effectuer une sauvegarde complète de vos fichiers et de votre base de données.

La partie la plus délicate lors du déplacement d’un blog WordPress vers un autre emplacement, réside dans le fait que WordPress utilise les liens absolus en lieu et place de liens relatifs lorsqu’il stocke certains paramètres dans votre base de données. Dans les articles et les pages de votre blog lui-même, il y aura forcément des liens absolus (par exemple http://www.ancien-domaine.com/monarticle)

Toutes ces valeurs de la base de données devront être modifiées lors de la migration de votre WordPress. Cet article vous montrera quels sont les champs de la base de données à remplacer et quelles sont commandes SQL à utiliser.

Une fois que la totalité de votre blog a été déplacé, la première chose à faire, est d’informer WordPress du changement et de lui donner son nouvel emplacement (les fichiers wp-config. php et .htaccess ne devraient subir aucun changement). Cette valeur peut être modifiée depuis l’admin WP dans les options générales, mais si vous ne pouvez plus accéder à l’URL de l’ancien blog, vous devrez directement modifier cette valeur depuis la base de données MySQL.

PhpMyAdmin

Procédures et requêtes SQL à utiliser

Pour exécuter des requêtes SQL, connectez-vous à la base de données MySQL qui héberge les tables de WordPress via phpMyAdmin ou connectez-vous au serveur de base de données et exécutez le client MySQL en tant que root.

Pour mettre à jour les options concernant l’emplacement du nouveau blog, utilisez la commande SQL suivante:

UPDATE wp_options SET option_value = replace(option_value, 'http://www.ancien-domain.com', 'http://www.nouveau-domaine.com') WHERE option_name = 'home' OR option_name = 'siteurl';

Après cela, vous aurez besoin de réparer les URL des articles et de vos pages, ces valeurs URL sont stockées comme des URL absolues, elles ont donc besoin d’être modifié, procédez au changement avec la requête SQL suivante:

UPDATE wp_posts SET guid = replace(guid, 'http://www.ancien-domaine.com','http://www.nouveau-domaine.com');

Si vous avez linké en interne au sein d’articles ou de pages avec des URL absolues, ces liens pointent désormais vers de mauvaises URL puisque vous avez déménagé. Utilisez la commande SQL suivante pour corriger tous les liens internes des articles et des pages:

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.ancien-domaine.com', 'http://www.nouveau-domaine.com');

Déplacer WordPress avec MySql

Et voilà, c’est déjà terminé !!!

Parcourez maintenant votre blog pour vérifier que tout fonctionne correctement. Vous aurez également besoin de vous reconnecter à l’administration WP, en effet, votre cookie d’authentification est devenu invalide en raison du changement d’URL.

Bonus: Pour ceux que les requêtes SQL rebutent, il existe un plugin pour faire tout le boulot à votre place, c’est à voir sur l’echo des plugins.

A propos de l'auteur...

WPFormation

Fabrice Ducarme, spécialiste & formateur WordPress je suis éditeur, auteur et fondateur de WP Formation.com. Conférencier lors des WordCamp Paris 2013 & 2015, Marseille 2017 et au WP Tech Nantes 2014, je vous propose plus de 500 articles & tutoriaux à propos de WordPress, mes trucs & astuces mais aussi des coups de gueule...

14 commentaires pertinents à ce jour ;)

  • rédaction web dit :

    Excellent article!
    J’y ai trouvé des astuces qui me serviront très bien!
    Merci pour le partage!

  • Montyz dit :

    MErci beaucoup vous m’avez énormément aidé, grace à vous j’ai pu faire mon transfert facilement ! Encore merci!

  • Aymeric dit :

    Très bon article.
    Cependant maintenant, en raison du nombre de sites que je fais, et des sites «tests» pour les clients, j’ai adopte la solution backupbuddy. C’est payant, mais tellement rapide et simple que ca vaut le coup. En plus ce plug gère les sauvegardes automatiques.

  • devock dit :

    Je ne connaissais pas la méthode replace() en SQL donc merci.

    Je rajouterai que je revalide toujours les permaliens dans les réglages car parfois avec les Custom Post Types ça bug !

  • lian00 dit :

    Juste un petit commentaire pour préciser que mon site a déménagé à l’adresse suivante: http://www.echodesplugins.li-an.fr/ Il faudrait donc modifier l’adresse donnée dans le billet.

  • Fabrice dit :

    Corrigé ;)

  • Sébastien dit :

    Bonjour,

    Les 3 requêtes sont superbes !!!

    Seulement les Widgets se vident… Quelqu’un a une explication ?

    Bien cordialement,

  • Francis Parent-Valiquette dit :

    @Sébastien,

    As-tu regénéré ton .htaccess en allant dans Réglages -> Permaliens et en cliquant sur “Enregistrer les modifications”? (assure-toi aussi que le fichier .htaccess a les droits suffisant).

    Tu peux aussi faire une recherche sur ton ancien nom de domaine au travers de la base de données complète à partir de PHPMyAdmin en utilisant les wildcard ex: %nomdedomaine.com% il est possible qu’il reste des traces dans d’autres tables si c’est le cas tu pourras mettre à jours les champs manuellement ou utiliser le script que j’ai fait: http://www.francisparent.com/changer-nom-domaine-dun-site-web-utilisant-wordpress/

    Il m’est aussi arrivé parfois que lors du changement de domaine je perdre certaine configuration de thème et de widget dans ce temps malheureusement tu dois remettre tes widget et entrer les infos manuellement ce qui n’est pas une si grosse job si tu as fait un backup (export) de ta base de donnée avant la modifications.

    En espérant que ça te donne un coup de main, bonne chance.

  • darknote dit :

    bonsoir,
    merci pour les requêtes mais il ne manque pas pour la table wp_postmeta?

  • vip agence dit :

    Merci pour l’explication il existe sinon des plugins de backup qui facilite la vie.

  • Kalagan dit :

    J’ai toujours cette liste dans mon Evernote de reqûetes pour changer de nom de domaine (ou pour créer une version de développement, par exemple dev.example.com). Par contre, une fois effectuées, il reste toujours quelques anciennes URL en base (plugins, options du thèmes…).

    Ne serait-il pas possible de faire une seule requête, qui pour un schéma de base, change tous les champs contenant http://www.ancien-domaine.com par http://www.nouveau-domaine.com ?

    Je m’avance un peu car je ne suis pas non plus spécialiste SQL, mais un requête du genre :

    UPDATE wp_(*) SET $var_field = replace($var_field, ‘http://www.ancien-domain.com’, ‘http://www.nouveau-domaine.com’);

    Qu’en pensez-vous ?