Rediriger un ancien nom de domaine vers le nouveau

Langage et développement
PHP

| par Teddy Payet

Il arrive parfois qu’on doit migrer un site vers un nouveau nom de domaine pour diverse raison. Ici, nous prendrons l’exemple d’un sous domaine (http://mon.exemple.tld) que nous devons faire migrer vers notre nouvelle adresse : http://www.domaine.com.
Dans un monde merveilleux, il faut bien sûr que cela soit automatique pour l’internaute et que nous ne soyons pas juste redirigés vers la page d’accueil du nouveau nom de domaine.
Ainsi nous aurions http://mon.example.tld/spip.php?article123 qui sera redirigé vers http://www.domaine.com/spip.php?article123 de façon automatique. Et l’url aura changé dans la barre d’adresse de votre navigateur.

Voici le code :

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mon\.example\.tld$ [NC]
RewriteRule ^(.*)$ http://www.domaine.com/$1 [R=301,L]

Explications

  • RewriteEngine : active la routine de ré-écriture des urls. (cf. doc)
  • RewriteCond : défini une condition pour laquelle la ré-écriture s’enclenchera. Et %{HTTP_HOST} en est la variable. ^mon\.example\.tld$ est la condition. (cf. doc)
  • RewriteRule : défini une règle pour que la ré-écriture se fasse.
  • ^(.*)$ : dit que nous désirons remplacer mon\.example\.tld par ce qui suit : http://www.domaine.com/.
  • $1 : copie tout ce qui se trouve après notre ancienne url.
  • R=301 : indique au serveur que c’est une redirection permanente.

Et voilà !