Changer l'adresse d'un site Joomla, c'est le faire répondre sur un nouveau nom de domaine sans perdre ses contenus ni ses visiteurs. Sur votre hébergement, chaque domaine a son propre dossier : il faut donc ajouter le nouveau domaine dans la console Apanel, y copier les fichiers du site, adapter le fichier configuration.php, puis rediriger l'ancienne adresse vers la nouvelle. Cet article vaut pour Joomla 4 et 5.
En bref : ajoutez le nouveau domaine avec Ajouter un domaine (service web sur Oui), copiez-y les fichiers, corrigez $log_path et $tmp_path dans configuration.php en laissant $live_site vide, puis redirigez l'ancien domaine en 301 par .htaccess.
Prérequis
- Le nouveau nom de domaine est enregistré, chez SwissCenter ou ailleurs, et il pointe vers nos serveurs de noms (voir Faire pointer son domaine vers SwissCenter), ou il y pointera une fois le site prêt.
- Un accès FTP à votre hébergement (voir Publier votre site par FTP) ou à l'Explorateur de fichiers de la console Apanel.
- Un compte administrateur du site Joomla.
Ce qu'il faut savoir avant de commencer
- Chaque domaine a son propre dossier. Un domaine ajouté avec son propre service web reçoit un dossier qui porte son nom, à côté de celui de l'ancien domaine :
/home/votrecompte/nouveau-site.ch. Le site doit y être copié.
- Vous pouvez garder la même base de données. Si l'ancien domaine ne sert plus qu'à rediriger vers le nouveau, le site copié peut continuer d'utiliser la base actuelle : il n'y a ni base à créer ni paramètre de connexion à changer. Créez une base séparée seulement si les deux sites doivent vivre chacun de leur côté : une base partagée appliquerait aux deux chaque modification faite sur l'un.
configuration.php contient des chemins complets. À l'installation, Joomla y enregistre le chemin du dossier des journaux ($log_path) et celui du dossier temporaire ($tmp_path), qui contiennent le nom du dossier du site. Après la copie, ils désignent encore l'ancien dossier.
- Laissez
$live_site vide. Vide, Joomla déduit son adresse de celle par laquelle on le consulte : le site fonctionne aussitôt sur le nouveau domaine. Ne le renseignez que si vous en avez besoin, et toujours avec l'adresse complète, https:// compris.
1. Sauvegarder le site
- Exportez la base de données du site avec phpMyAdmin (voir Exporter ou importer une base de données MySQL avec phpMyAdmin). Gardez ce fichier : il permet de revenir en arrière.
- Téléchargez le dossier du site par FTP sur votre ordinateur.
Si le site utilise déjà l'extension Akeeba Backup, une sauvegarde complète faite avec elle convient aussi.
2. Comment ajouter le nouveau domaine dans la console Apanel ?
- Connectez-vous à votre console Apanel.
- Sur le Tableau de bord, cliquez sur Ajouter un domaine.
- Dans Nom de domaine, saisissez le nouveau domaine, sans
www : nouveau-site.ch.
- Laissez Activer le service DNS activé si le domaine utilise nos serveurs de noms.
- Dans Activer le service web, choisissez Oui : le domaine reçoit son propre dossier.
- Dans Activer le service mail, choisissez Oui si vous voulez des adresses e-mail sur ce domaine, sinon Non.
- Cliquez sur Ajouter.
Le message « Opération effectuée avec succès » s'affiche et le domaine apparaît sur le Tableau de bord. Ouvrez sa Gestion de l'hébergement et activez son certificat depuis Sécurisation SSL (voir Installer un certificat SSL sur un domaine).
3. Copier les fichiers
Copiez tout le contenu du dossier de l'ancien domaine dans le dossier du nouveau domaine, par FTP : envoyez dans nouveau-site.ch les fichiers téléchargés à l'étape 1. N'oubliez pas les fichiers dont le nom commence par un point, comme .htaccess : certains logiciels FTP les masquent.
Ne videz pas encore le dossier de l'ancien domaine : il sert jusqu'à ce que le nouveau site soit vérifié.
4. Que faut-il changer dans configuration.php ?
Ouvrez le fichier configuration.php du nouveau dossier, avec l'Explorateur de fichiers (carte Outils) ou en le modifiant sur votre ordinateur puis en le renvoyant par FTP.
- Dans
$log_path et $tmp_path, remplacez le nom de l'ancien dossier par celui du nouveau :
public $log_path = '/home/votrecompte/nouveau-site.ch/administrator/logs';
public $tmp_path = '/home/votrecompte/nouveau-site.ch/tmp';
- Vérifiez
$live_site. S'il contient l'ancienne adresse, videz-le :
public $live_site = '';
- Si vous avez créé une base séparée pour le nouveau site (voir Créer une base de données MySQL et son utilisateur) et que vous y avez importé l'export de l'étape 1, indiquez-la ici. Sinon, ne touchez pas à ces lignes :
public $host = 'localhost';
public $user = 'votrecompte_nomdelabase';
public $password = 'le mot de passe de la base';
public $db = 'votrecompte_nomdelabase';
- Enregistrez le fichier.
5. Faut-il remplacer l'ancienne adresse dans la base ?
Joomla construit lui-même ses liens, mais une adresse complète saisie à la main (dans un article, un module, un menu ou une extension) reste en base telle quelle. Ouvrez le site sur le nouveau domaine : si des images ou des liens pointent encore vers l'ancien, remplacez l'ancienne adresse dans la base.
- Exportez la base avec phpMyAdmin.
- Dans le fichier obtenu, remplacez le nom de l'ancien domaine par celui du nouveau : cherchez
ancien-site.ch seul, sans https://, car les réglages enregistrés en JSON écrivent les barres obliques \/.
- Importez le fichier modifié dans la base.
Certaines extensions enregistrent des données « sérialisées », où la longueur de chaque texte est notée à côté de lui : un remplacement par un nom de longueur différente peut les rendre illisibles. Si une extension se met à mal fonctionner après l'import, réimportez l'export d'origine et corrigez les liens depuis l'administration de Joomla.
6. Comment rediriger l'ancienne adresse ?
Une fois le nouveau site vérifié, envoyez les visiteurs et les moteurs de recherche de l'ancienne adresse vers la nouvelle avec une redirection permanente (301). Placez ces lignes en tête du fichier .htaccess du dossier de l'ancien domaine (créez-le s'il n'existe pas) :
RewriteEngine On
RewriteRule ^(.*)$ https://www.nouveau-site.ch/$1 [R=301,L]
Chaque page de l'ancien domaine renvoie alors vers la même page du nouveau. La Gestion des redirections de la console fait des redirections temporaires (302) : pour un changement de domaine, préférez le .htaccess (voir Rediriger une adresse web vers une autre).
Gardez l'ancien domaine sur votre hébergement tant que la redirection doit fonctionner : s'il est supprimé, ses visiteurs ne sont plus redirigés.
7. Vérifier le site et prévenir Google
- Ouvrez
https://www.nouveau-site.ch et connectez-vous à son administration (https://www.nouveau-site.ch/administrator).
- Parcourez quelques pages : images, liens internes, formulaires.
- Ouvrez une page de l'ancien domaine : elle doit vous amener sur la même page du nouveau.
- Si votre site est suivi dans la Google Search Console, ajoutez-y le nouveau domaine, puis utilisez l'outil Changement d'adresse pour signaler le déménagement.
En cas de problème
| Ce que vous voyez |
Ce qu'il faut faire |
| « Ce domaine existe déjà » à l'ajout du domaine |
Le domaine est déjà configuré sur un hébergement. S'il ne figure pas sur votre Tableau de bord, contactez le support. |
| « L'ajout d'un nouveau domaine est temporairement désactivé, car votre quota web a été atteint. » |
Libérez de l'espace ou commandez-en (voir Voir l'espace disque utilisé et en ajouter), puis ajoutez le domaine. |
| Le nouveau domaine affiche la page d'accueil SwissCenter |
Les fichiers ne sont pas dans le dossier du nouveau domaine, ou pas directement à sa racine (voir Le navigateur affiche toujours la page d'accueil SwissCenter). |
| Le nouveau domaine est introuvable |
Le domaine ne pointe pas encore vers nos serveurs, ou le changement n'est pas encore propagé (voir Comprendre le délai de propagation DNS après une modification). |
| Le nouveau site renvoie vers l'ancien domaine, ou charge ses styles depuis lui |
$live_site contient encore l'ancienne adresse : videz-le (étape 4). Si seules certaines images ou certains liens sont touchés, voir l'étape 5. |
| Joomla signale un dossier des journaux ou un dossier temporaire introuvable ou non inscriptible, ou l'envoi de fichiers échoue |
$log_path ou $tmp_path désigne encore l'ancien dossier (étape 4). |
| Joomla ne parvient pas à se connecter à la base de données |
Comparez $host, $user, $password et $db avec l'onglet Configuration de la base, dans MySQL (carte Bases de données). |
| Un avertissement de sécurité s'affiche sur le nouveau domaine |
Son certificat SSL n'est pas encore actif : voir l'étape 2. |
Pour aller plus loin