Auteur : Didier Misson
• 21 mars 2008

La migration de DotClear 1.7 vers WordPress 2.3.3 s’est passé assez bien, même s’il reste quelques petits détails de mise en page.

Mais mes liens sont tous cassés : toutes les URL de mes billets sont modifiées et donc c’est mauvais pour le référencement Google (déjà que je n’ai pas beaucoup de visite… je n’aurai plus personne :p ). Non, disons que c’est surtout gênant pour ceux et celles (oui oui !) qui ont conservé des adresses de mon ancien blog DotClear comme documentation.

Par exemple, l’URL du billet « SPIP premier essais » :

Pour cette URL dans WordPress, j’avais changé la génération des URL dans « Option/Permaliens« , en prenant l’option « Basé sur la date et le titre« .

J’ai aussi résolu mon problème personnel de changement de dossier (que vous n’aurez probablement pas) en ajoutant un lien symbolique :

ln -s blog didier

De cette façon, les anciens liens « didier.misson.net/didier » arrivent bien dans le dossier « didier.misson.net/blog ».

Ca se rapproche déjà de l’URL d’origine de DotClear, mais il n’est pas possible depuis WordPress, d’ajouter le « index.php? » manquant.
Soit on n’obtient une URL différence, soit on arrive toujours à la page d’accueil.

La solution est bien évidemment une redirection dans un fichier .htaccess dans la racine de votre blog.
Le tout est d’écrire la bonne redirection !

Je n’essayerai pas de vous faire croire que j’y suis arrivé seul ;-)

Non, j’ai trouvé le bon exemple de fichier .htaccess sur le blog Expression.be. Dans le billet Divorce avec DotClear, ma maîtresse s’appelle WordPress, Gaetano avec l’aide d’Emich, nous donne LA solution.

Voici le fichier .htaccess, juste légèrement adapté pour mes noms de dossiers :

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} [0-9]+/[0-9]+/[0-9]+/[0-9]+-.+
RewriteRule ^index\.php$ http://didier.misson.net/blog/%{QUERY_STRING}/? [R=301,L]
RewriteRule ^([0-9]+)[/]([0-9]+)[/]([0-9]+)[/][0-9]+-(.+)$ http://didier.misson.net/blog/$1/$2/$3/$4? [R=301,L]
# BEGIN WordPress

RewriteEngine On
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]

# END WordPress

Le [R=301,L] indique que la redirection est permanente, ce qui veut dire que Google (par exemple, il n’y a pas que lui…) remplacera dans ses référencements toutes ses adresses par les nouvelles.

Et voilà, ça fonctionne ! :-)

sauf que mon premier essais, je suis tombé sur … un billet non existant ! :-(
Zut… et ce n’est pas le .htaccess qui déconne ! Ce billet est vraiment manquant… L’importation l’a loupé…

Faudra que je vérifie au minimum la liste des articles, et si nécessaire recréer les manquants (il ne doit pas en manquer beaucoup).

Sinon, excepté ce petit bug d’importation, les anciennes URL semblent bien fonctionner et sont redirigées automatiquement vers les nouvelles adresses WordPress. :-)

Merci à Emich et Gaetano ;-)

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Identi.ca
  • MySpace
  • Netvibes
  • Technorati
  • Twitter
  • email
  • Wikio FR
  • LinkedIn
  • RSS
  • Add to favorites
Vous pouvez suivre toutes les réponses à à ce billet via le flux RSS 2.0. Vous pouvez laisser une réponse, ou un rétrolien depuis votre propre site.

2 réponses

  1. Je n’y suis pour rien, c’est l’oeuvre de emich ;-)

  2. Et bien… merci à Emich ;-)
    ça m’a bien aidé en tout cas :-)

Laisser un commentaire