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

 Déplacer WordPress vers un nouveau Nom de Domaine demenager wordpressVous déménagez ? Pensez à modifier votre base de données WordPress !

 

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

Déménager son blog 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.

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.

 

Attention, cet article ne traite pas du déplacement d’un blog WordPress à partir d’un serveur ou hébergement vers un autre hébergeur…

 

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.

 Déplacer WordPress vers un nouveau Nom de Domaine PhpMyAdmin1

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 vers un nouveau Nom de Domaine base de donnees sql

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.

 

Source Mydigitallife, librement traduit et modifié. 

 

14 commentaires

  1. rédaction web

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

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

  3. 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.

  4. @Aymeric,
    oui une solution très fonctionnelle que les services déportés, il en existe plusieurs voir : Différents Services de Sauvegarde pour WordPress.

  5. 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 !

  6. 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.

  7. Corrigé ;)

  8. Francis Parent-Valiquette

    Bonjour,

    J’ai créer un script PHP permettant d’automatisé les requêtes « REPLACE » de MySQL au travers de la base de données au complet.

    http://www.francisparent.com/changer-nom-domaine-dun-site-web-utilisant-wordpress/

    Je crois que ce tools est pertinent à vos lecteurs si vou avez une chance laissez-moi vos commentaires.

  9. Bonjour,

    Les 3 requêtes sont superbes !!!

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

    Bien cordialement,

  10. Francis Parent-Valiquette

    @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.

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

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

  13. 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 ?

  14. @Kalagan,
    c’est dans l’esprit, voir également le commentaire + le lien de @Francis ci-dessus ou encore le script /search-and-replace-for-wordpress-databases/