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 ;-)


Réseaux sociaux :
  • Print
  • Identi.ca
  • Twitter
  • Facebook
  • email
  • PDF
  • RSS
  • Digg
  • Sphinn
  • del.icio.us
  • Mixx
  • Google Bookmarks
  • MySpace
  • Netvibes
  • Technorati
  • Wikio
  • Wikio FR
  • LinkedIn
  • Add to favorites
  • FriendFeed
  • viadeo FR
  • Yahoo! Buzz
  • MisterWong
Si vous appréciez cet article, laissez un commentaire ou abonner vous au flux RSS feed pour avoir les articles futures délivrés dans votre Reader.

Articles relatifs

Written on mars 21st, 2008 & filed under CMS - Blogs - Groupware Tags: ,
LEAVE A COMMENT
Comment
 
COMMENTS
    Gaetano commented

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

    16 avril 2008 at 9:17
    Didier commented

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

    16 avril 2008 at 9:25

    Merci beaucoup! Voilà qui va m’être très utile!

    2 avril 2010 at 10:56