Aller au contenu

Migration Dotclear vers Wordpress


Sujets conseillés

Bonjour

Je suis en train de migrer mon site de Dotclear vers Wordpress.

J'ai pu récupérer les articles sous wordpress. Par contre, je bute sur la manière de procéder pour conserver mes anciens liens.

Mon précédent site était installé à la racine. Pour rendre les choses plus simples j'ai installé Wordpress dans un répertoire /blog

Mes anciens url avec Dotclear :
/>http://www.monsite.com/index.php/2009/10/07/551-titre

551 est le numéro identifiant de l'article

Mes nouveaux url avec Wordpress installé dans le répertoire /blog :
/>http://www.monsite.com/blog/2009/10/07/titre/

J'aimerais rediriger mes anciens URL vers quelque chose de ce type :
/>http://www.monsite.com/2009/10/07/titre/

ou
/>http://www.monsite.com/551/titre/

La difficulté c'est que le numéro identifiant l'article sous Dotclear n'est pas le même que celui utilisé par Wordpress.

Si quelqu'un à une idée ? Je suis bloqué !

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Ça ne va pas être simple. L'idéal serait que le script de migration produise un tableau de correspondances entre les ids de Dotclear et ceux de Wordpress, et à partir de ce tableau, générer la liste des redirections pour le htaccess.

Ou alors tu peux peut-être utiliser les dates, puisque la date apparaît dans l'ancienne url de même que dans la nouvelle, et sous le même format (/2009/10/07/). Dans index.php, si l'url est de forme Dotclear, le script recherche la nouvelle url en se basant sur la date, et redirige sur celle-ci. Par contre, si tu as écrit plusieurs articles par jour, ça se corse.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Ça ne va pas être simple. L'idéal serait que le script de migration produise un tableau de correspondances entre les ids de Dotclear et ceux de Wordpress, et à partir de ce tableau, générer la liste des redirections pour le htaccess.

Ou alors tu peux peut-être utiliser les dates, puisque la date apparaît dans l'ancienne url de même que dans la nouvelle, et sous le même format (/2009/10/07/). Dans index.php, si l'url est de forme Dotclear, le script recherche la nouvelle url en se basant sur la date, et redirige sur celle-ci. Par contre, si tu as écrit plusieurs articles par jour, ça se corse.

Merci pour ta réponse.

Je n'ai pas été amené à écrire souvent plusieurs articles par jour. Je dois pouvoir revenir sur les quelques cas. Déjà si je peux traiter la grande majorité ds articles ce sera bien.

Tu parles de script mais ne peut on pas traietr ce problème avec un fichier .htaccess ?

Lien vers le commentaire
Partager sur d’autres sites

Pas besoin de script, une seule règle comme ceci devrait fonctionner à mon avis :

RewriteEngine on
RewriteRule index.php/([0-9]{4}/[0-9]{2}/[0-9]{2}/)[0-9]+-(.*)$ http://www.monsite.tld/blog/$1$2/ [R=301,L]

Pour autant que le titre reste exactement le même... sinon il faut un identifiant !

Dan ;)

Lien vers le commentaire
Partager sur d’autres sites

Pas besoin de script, une seule règle comme ceci devrait fonctionner à mon avis :

RewriteEngine on
RewriteRule index.php/([0-9]{4}/[0-9]{2}/[0-9]{2}/)[0-9]+-(.*)$ http://www.monsite.tld/blog/$1$2/ [R=301,L]

Pour autant que le titre reste exactement le même... sinon il faut un identifiant !

Dan ;)

Merci !

Si j'ai bien compris tu reprends dans ta règle une première variable correspondant à la date et une seconde variable correspondant au titre. Peux tu m'expliquer ce que signifie "(.*)" ? Quelle différence avec "(-[a-z]*)" ?

Dans l'URL réécrite est ce que je peux faire http://www.monsite.tld/blog/$1/$2/ ?

Je sais qu'entre Dotclear et Wordpress j'ai pour l'identifiant d'un article une différence de 213. Par exemple, l'article numéroté 551 sur Dotclear et numéroté 338 sur Wordpress. Comment introduire cette règle afin de reprendre cette variable dans l'URL réécrite ?

Dernière question. Est-il possible de supprimer le répertoire blog dans l'URL réécrite ?

Lien vers le commentaire
Partager sur d’autres sites

La date est trouvée avec ([0-9]{4}/[0-9]{2}/[0-9]{2}/) donc on prend dans celle-ci le dernier /

Comme dans 2010/01/01/ ...

C'est pour cette raison que je ne mets pas $1/$2 mais $1$2 vu que le '/' se trouve en fin de $1.

Si tu veux utiliser $1/$2, il faut enlever le dernier / de la date, comme ceci :

RewriteRule index.php/([0-9]{4}/[0-9]{2}/[0-9]{2})/[0-9]+-(.*)$  http://www.monsite.tld/blog/$1/$2/ [R=301,L]

à toi de voir ! Ca ne change rien au niveau de l'URL réécrite !

Pour supprimer "blog/" de la réécriture, il faut que ton installation de Wordpress soit à la racine, et non dans "blog/" ...

Dan

PS: le (.*) permet de prendre TOUS les caractères, le (-[a-z]*) ne prend que les caractères de 'a' à 'z' et le tiret '-'

PS2: tu n'as pas besoin de l'id des articles sous Wordpress

Lien vers le commentaire
Partager sur d’autres sites

  • 5 months later...
Posté (modifié)

Un grand merci car j'ai l'impression d'avoir compris et je n'aime pas faire quelque chose que je ne comprends pas.

Je vais tester cela ce soir.

Le test est intervenu beaucoup plus tard que je ne l'imaginais.

Voilà la situation aujourd'hui :

J'ai un blog sous Dotclear installé chez OUvaton directement à la racine (/html).

Je souhaite profiter de la migration de mon blog vers wordpress pour le déplacer vers un répertoire html/blog. La migration de Dotclear vers Wordpress s'est déroulée sans problème. J'ai pu récupérer tous mes billets.

Comme je ne veux pas perdre mes anciens liens j'ai créé sur vos conseils un fichier htaccess contenant :

--------------------------

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

---------------------------

J'ai placé ce fichier htaccess dans la répertoire /html.

Rien ne se passe. Lorsque j'accède à www.monsite.org j'ai toujours accès à mon blog sous Dotclear. Je dois aller sur www.monsite.org/blog pour trouver mon site sur wordpress

Que dois-je faire pour réaliser cette redirection.

Merci

Modifié par sablier
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...