Il est toujours désagréable de tomber sur une URL redirigée vers la page d'accueil d'un second site. Encore plus lorsqu'il s'agit d'un changement de nom de domaine. Ce billet fait suite à plusieurs demandes d'explication de certains lecteurs du blog, voici une solution simple à mettre en œuvre avec un .htaccess.
Principe
La meilleure façon de rediriger un visiteur d'une ancienne adresse vers une nouvelle est l'utilisation des en-têtes (headers), avec un serveur Apache (le plus répandu).
Plutôt que de rediriger toutes les pages de l'ancienne URL vers une seule et unique adresse (la nouvelle URL), il est plus logique de rediriger le visiteur vers la page à laquelle il s'attendait mais sur le nouveau domaine. Vous ne comprenez rien ? Voyons un exemple qui sera j'espère plus parlant.
Au lieu de faire ça :
http://www.anciensite.com/ma-page.php => http://www.site.com/
Nous allons faire :
http://www.anciensite.com/ma-page.php => http://www.site.com/ma-page.php
L'intérêt est double : le visiteur n'est pas perdu et comprend que le site a changé de nom ou d'adresse (redirection transparente), aucune perte de votre référencement (SEO) puisque les moteurs mettront à jour leurs index avec le nouveau domaine (redirection permanente 301), bien que cela peut prendre plusieurs semaines voir mois.
C'est cette méthode que j'ai utilisée lorsque Xhark.fr.nf devenait Blogmotion.fr.
En pratique
C'est une technique extrêmement simple à mettre en place, à tel point que cela risque de vous décevoir.
Créer un fichier .htaccess à la racine de votre ancien domaine, au même niveau que le fichier wp-config.php si vous utilisez WordPress et ajouter la ligne suivante :
RedirectPermanent / http://site.com/
Le premier "/" correspond au chemin absolu de l'ancien contenu. Admettons votre ancien domaine http://www.anciensite.com/blog/ et votre nouveau domaine sans le chemin "/blog", voici comment il faut procéder :
RedirectPermanent /blog http://site.com/
Conclusion
Les possibilités sont multiples et infinies. Vous pouvez même utiliser cette technique sur un même domaine qui change de chemin (attention à ne pas boucler !).
Vous pouvez vérifier le fonctionnement de la résolution avec un lecteur d'en-têtes qui devrait vous retourner quelque chose comme :
HTTP/1.1 301 Moved Permanently Date: Sun, 04 Apr 2010 21:02:41 GMT Server: Apache/1.x.x Location: https://blogmotion.fr/test Vary: Accept-Encoding Content-Length: 340 Connection: close Content-Type: text/html; charset=iso-8859-1
Pensez à renommer le fichier .htaccess sur le serveur FTP s'il contient des caractères avant le ".". C'est le cas sous Windows si vous utilisez le bloc-notes traditionnel qui refuse qu'aucun nom ne soit présent devant l'extension (sauf si vous entourez le nom de guillemets ".htaccess" ou alors utilisez Notepad++).
Note : vous pouvez tout à fait supprimer toutes les données de votre ancien site si vous le souhaitez, le fichier .htaccess se chargeant de tout rediriger vers le nouveau (même si le contenu est absent).
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
26 commentaires
Excellent tuto que j'ai cherché à l'époque quand je suis passé du serveur gratuit au serveur payant d'espace gratuit en changeant de nom de domaine.
Merci
@ZePhyR : personnellement je me sers de cette astuce relativement souvent, il faut effectivement la connaître. Je viens d'aller sur ton blog, sympa !
Et au niveau des headers, ça fonctionne comment. Car si je veux utiliser l'espace libre de mon ancien hébergement en stockage, avec la méthode htaccess, j'aurais une redirection de mes documents quand je voudrais y accéder^^
@Rbeuque74 : je te conseille idéalement de créer un sous domaine du style static.anciensite.com tu seras moins gêné. Sinon je tu peux faire une exclusion (via une règle de ré-écriture), si tu es intéressé dis-le moi je te retrouve un exemple que j'utilisais 😉
Bien ce qui me semblait, avec blogger je peux pas appliquer çà 🙂
Je vais laisser comme c'est finalement :s
@Mr Xhark Si t'as un exemple, je suis quand même preneur parce que j'ai pas la possibilité de créer un nom de domaine static ^^
@Fox 15
Bien sûr que tu peux appliquer ça avec Blogger !
Mais comme c'est Blogger qui contrôle les DNS du "sous-domaine" tu auras des pages introuvables partout !!
(Est ce que j'ai râlé ici !!! )
Merci de la manip.
Si quelqu'un a la même chose pour un transfert sans bobos de dotclear 1 à wordpress, je suis preneur.
J'avais tenté la manip il y a quelques temps, mais vu le désastre, j'avais fait machine arrière.
Bonjour,
Vu que tu as l'air calé sur la redirection, j'aimerais savoir si c'est possible de rediriger une catégorie (d'un blog WordPress) vers une page ?
Merci
Si je me suis mal fait comprendre, dis moi le 😉
@FulliPhone : oui c'est possible, il suffit de placer une règle de ré-écriture avant celles de WordPress. Mais quel est ton but initial ? (ce n'est peut-être pas la meilleure solution, suivant le type de redirection que tu veux faire car tu peux aussi intégrer du php dans ton template).
En fait, j'aimerai que ma catégorie "ipa" (que tu vois dans ma colonne de droite) soit redirigée vers ma page ".../ipa-par-ordre-alphabetique" (je mets pas le lien entier mais tu as compris 😉 )
Merci
@Fulliphone : ta page de destination est-elle dans la catégorie en question (est-ce un billet ou une page), donne moi l'url complète ?
C'est une page et en fait j'aimerai rediriger :
http://fulliphone.net/category/ipa/
vers
http://fulliphone.net/ipa-par-ordre-alphabetique/
Merci
Tente un :
RedirectPermanent /ipa/index.php http://fulliphone.net/ipa-par-ordre-alphabetique/
Sinon je te file autre chose ce soir 😉
En fait, c'était pas tout à fait ça mais tu m'as bien éclairé. Voilà ce que j'ai mis pour réussir mon petit tour de passe passe :
RedirectPermanent /category/ipa/ http://fulliphone.net/ipa-par-ordre-alphabetique/
Merci pour tout 😉
P.S : je me demandais un truc là, niveau référencement ou "Duplicate Content", ça craint rien ?
@FulliPhone : non, mais par contre on ne peut plus parcourir ta catégorie donc veille à ne donner aucune URL vers celle-ci 😉
note : j'avais oublié un bout de ton url dans mon code 🙂
Ok, c'est tout bon. Un grand merci à toi 😉
@FulliPhone : avec plaisir
J'ai un domaine http://jvitogo.org contenant les fichiers du site avec une page index.php qui appelle les autres pages de la manière suivante : index.php?page=accueil par exemple.
J'ai créé un autre fichier index.php dont le contenu est différent de l'ancien fichier index.php. Alors il faut changer l'ancien fichier index.php en index1.php qui appellera les autres pages qui n'ont subi aucune modification de la manière suivante : index1.php?page=accueil.
Etant donné que les moteurs de recherche ont déjà référencé l'ancien fichier index.php?page=accueil, comment intégrer le nouveau fichier index1.php?page=accueil sans perdre mon référencement.
Merci.
Et si l'ancien hébergeur (qui était gratuit) avec un sous domaine en guise de NDD pour le site est down et donc on n'a plus accès au serveur de celui-ci, comment on redirige les fichiers vers le nouveau domaine sachant que juste l'URL change ?
@PSP : alors tu ne peux rien faire, seulement attendre que Google t'indexe à nouveau...
@Mr Xhark : En fait ça fait plus d'un an que je me pose cette question et comme j'ai retrouvé ton article dans mes favoris je me suis dit pourquoi pas lui demander vu que je ne trouve pas ma réponse.
En fait pour être précis, je veux juste rediriger les images qui utilisent themespsp.e3b.org (donc vieux NDD) dans mes articles vers themespsp.fr ... Fin bon en utilisant la fonction capital_P_dangit de wordpress ça fonctionne vu que je remplace l'ancien NDD par le nouveau mais bon on sait jamais, si tu aurais eu une solution plus "propre" 😉
Bonjour,
Effectivement je cherchais une solution pour que sur mon mon domaine soit redirigé automatiquement vers les www.
En plus si c'est simple à mettre en oeuvre, je ne suis pas déçu !
Bonjour,
Moi en fait je cherche à faire quelque chose (je suis novice en la matière), mais je ne sais pas si c'est exactement ce que tu expliques dans ton article.
J'ai un nom de domaine chez Free, donc l'url est du type http://siteperso.free.fr. Et mon site web est hébergé chez Free. Cette url ne me plaisant pas trop (pas hyper pro), j'ai acheté un nom de domaine (chez Gandi).
Pour le moment, j'ai redirigé via le centre de gestion de GANDI, mon nouveau nom de domaine vers http://siteperso.free.fr.
Sauf que l'adresse qui apparaît dans la barre de navigation reste celle de Free, et l'adresse référencée dans Google est celle de Free...
J'aimerais ne plus voir l'adresse Free en fait. Et que l'url référencée soit la nouvelle. Comment faire? Dois-je héberger mon site ailleurs forcément?
Merci!
@barnaby: je n'ai pas compris comment tu peux rediriger ton siteperso.free.fr vers siteperso.fr via l'interface gandi ? Tu peux utiliser le .htaccess sur Free comme sur Gandi, ça fonctionnera dans les deux sens