Vous possédez plusieurs noms de domaine pour un même site ? Voici une méthode simple pour rediriger tous vos noms de domaine secondaires vers un nom de domaine principale en utilisant le fichier .htaccess.
Les codes présents dans cet article sont à placer dans le fichier nommé .htaccess à la racine de tous les sites secondaires qui doivent effectuer la redirection. Pensez à bien adapter ce code avec vos informations : protocole (http ou https) et nom de domaine.
.htaccess : Redirection de tout un domaine vers un autre
Ce premier code permet de rediriger toutes les URL vers notre domaine principal, ici https://newdomain.com en conservant le chemin, mais pas le sous-domaine. C'est à dire que les URL avec un sous-domaine comme www.olddomaine.com/chemin et celles sans sous domaine comme olddomaine.com/chemin seront redirigées vers https://newdomaine.com/chemin. Si l'on ne souhaite pas conserver le chemin dans l'URL de destination, il suffit de supprimer $1.
<IfModule mod_rewrite.c>
# Redirect all URL to https://newdomaine.com/$1
RewriteEngine On
RewriteRule (.*)$ https://newdomain.com/$1 [R=301,L]
</IfModule>
.htaccess : Redirection d'un domaine avec gestion des sous-domaines
Si l'on souhaite une redirection plus précise des sous-domaines, c'est le code suivant qu'il nous faudra utiliser. Ici, toutes les URL ayant le sous domaine subdomain1 (de la forme subdomaine1.olddomain.com/chemin) seront redirigées vers subdomaine1.newdomain.com/chemin, de même pour le sous-domaine subdomain2. Toutes les autres formes d'URL seront redirigées vers https://newdomain.com/ (ce qui aura pour effet de rediriger les URL de la forme olddomaine.com/chemin et www.olddomaine.com/chemin vers https://newdomaine.com/chemin).
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirect subdomaine1.olddomain.com/*
# to https://subdomaine1.newdomaine.com/$1
RewriteCond %{HTTP_HOST} ^subdomaine1.olddomain.com$
RewriteRule (.*)$ http://subdomaine1.newdomain.com/$1 [R=301,L]
# Redirect subdomaine2.olddomain.com/*
# to https://subdomaine2.newdomaine.com/$1
RewriteCond %{HTTP_HOST} ^subdomaine2.olddomain.com$
RewriteRule (.*)$ http://subdomaine2.newdomain.com/$1 [R=301,L]
# Redirect all another to https://newdomaine.com/$1
RewriteRule (.*)$ https://newdomain.com/$1 [R=301,L]
</IfModule>