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 » :
- en DotClear « didier.misson.net/didier/index.php?2007/07/12/121-spip-premier-essais »
en WordPress « didier.misson.net/blog/2007/07/12/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 ![]()
















Je n’y suis pour rien, c’est l’oeuvre de emich
16 avril 2008 at 9:17Et bien… merci à Emich
16 avril 2008 at 9:25ça m’a bien aidé en tout cas
Merci beaucoup! Voilà qui va m’être très utile!
2 avril 2010 at 10:56