Changer le nom du site (URL) de Wordpress

Contrairement à Drupal, Wordpress stocke dans sa base de données l'URL complète du site. Ceci inclut également le protocole (http ou https).

Du coup, en cas de passage d'un site en https, ou du transfert d'un site de développemnt en production (avec changement d'URL, par exemple de dev.monsupersite.org en www.monsupersite.org), on perd une grande partie du contenu (média, éventuellement CSS).

Il est possible de résoudre le problème, avec Search-Replace-DB-master. C'est un ensemble de scripts php.

Installation


Récupérer sur https://github.com/interconnectit/Search-Replace-DB

Utilisation

Le script travaille uniquement sur la base de données. Il peut donc être lancé à partir de n'importe quel répertoire.

Il utilise les paramètres suivants :

  • -h : host de la base de données
  • -n : nom de la base de données
  • -u : utilisateur de la base
  • -p : mot de passe
  • -z : en mode "dry run". Ceci permet d'avoir un retour sur ce qui sera fait, sans faire les modifications
  • -s : URL de départ
  • -r : URL cible

Par exemple, si on veut passer notre site, développé avec l'URL http://dev.monsupersite.org, sur un environnement de production en https://www.monsupersite.org :

Lancement en mode Dry Run : (option -z)

php srdb.cli.php -h localhost -n monsupersite -u monuser -p monmotdepasse -z -s 'http://dev.monsupersite.org' -r 'https://www.monsupersite.org'

Je recommande de faire une sauvegarde de la base

mysqldump -u monuser --password=monmotdepasse monsupersite > monsupersite.sql.dmp

Puis on lance en "vrai" : 

php srdb.cli.php -h localhost -n monsupersite -u monuser -p monmotdepasse -z -s 'http://dev.monsupersite.org' -r 'https://www.monsupersite.org'

 

Catégorie
Tag