Dotclear 2, Dreamhost et Htaccess

Bon, alors, un peu à cause de l'ami Richard, je me suis finalement décidé à bouger d'hébergement, et tant qu'a faire je me suis dis, allez, on bouge tout, on passe à Dotclear 2 etc...

Seulement voilà, c'est pas si simple. Si, comme d'habitude l'installation de Dotclear ne pose pas de problèmes, le reste n'a pas été sans mal.

D'abord, concernant Dotclear, j'ai fait une installation "propre" de la version 2, puis j'ai exporté mes billets, commentaires et catégories via le plugin créé à cet effet (Flat File Export) et enfin ré-importé le tout dans la nouvelle version et hop, magique, a cet instant j'ai un "Da Bourz Blog" en version 2 avec tout dedans.

C'est maintenant que les choses se compliquent, d'abord l'erreur "No input file specified" sur Dreamhost, puis la redirection des anciens liens avec un petit Htaccess, car si "cool urls don't change" et ben avec Dotclear 2 elles ont toutes changées ! Et puis moi, les Urls, je les veux jolies, en "Info_path" !

Les liens du blog version 1 n'étaient pas terrible, du genre "/weblog/index/*", cela venait d'une très ancienne version de Dotclear, et puis après je n'avais jamais vraiment voulu changer. Sur cette nouvelle installation je veux faire disparaitre le "index/" afin que toutes les Urls commencent seulement par "/weblog/" le reste directement. Mais je veux aussi que les gens venant des anciennes "/weblog/index/" arrivent sur l'accueil. Hors sur Dreamhost, quand on appelle seulement "index/" (ou index.php/) avec un slash derrière, et ben ça donne un "No input file specified". J'ai cherché à comprendre et à corriger, mais pressé par le temps et comme je n'ai rien trouvé, j'ai utilisé le Htaccess pour contourner le problème. Du coup, j'ai commencé ce Htaccess avec deux choses :

  • Réécrire les demandes à "index/" seules pour virer le "/" à la fin.
  • Faire en sorte que tout ce qui passe après le /weblog/ soit renvoyé à /weblog/index.php/ avec tous les paramètres derrière pour que cela marche.

J'ai cherché, cherché sur le Web et j'ai fini par trouver mon bonheur chez Kozlika et chez Benoit.

J'ai ensuite rajouté mes propres trucs dans le Htaccess, surtout pour l'histoire de "index/" :

RewriteRule ^index\.php/$ /weblog/ R=permanent

Et pour les archives :

RewriteRule ^index.php/(0-9{4})/(0-9{2}) /weblog/archive/$1/$2

Bref, après tout cela ça marche, et normalement toutes les anciennes URLs sont reprises. Donc pas de casse, un déménagement sans changer d'adresse en quelque sorte !! ;-)

Je met ici le Htaccess complet, pour référence, si vous avez des questions n'hésitez pas !

Options +MultiViews

RewriteEngine On
RewriteBase /weblog/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /weblog/index.php/$1
RewriteRule ^index\.php/$ /weblog/ [R=permanent]

# Pour les redirections des flux RSS/Atom des categories
RewriteCond %{QUERY_STRING} ^cat=([A-Z][A-Za-z0-9_-]*)$
RewriteRule ^rss.php /weblog/feed/category/%1/rss2 [R=301]
RewriteCond %{QUERY_STRING} ^cat=([A-Z][A-Za-z0-9_-]*)$
RewriteRule ^atom.php /weblog/feed/category/%1/atom [R=301]

# Pour les redirections des flux RSS/Atom generaux
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^rss.php /weblog/feed/rss2 [R=301]
RewriteCond %{QUERY_STRING} ^type=co$
RewriteRule ^rss.php /weblog/feed/rss2/comments [R=301]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^atom.php /weblog/feed/atom [R=301]
RewriteCond %{QUERY_STRING} ^type=co$
RewriteRule ^atom.php /weblog/feed/atom/comments [R=301]

# Billet : YYYY/MM/DD/##*
RewriteRule ^index.php/(\d{4})/(\d{2})/(\d{2})/(\d+.+)$ /weblog/post/$1/$2/$3/$4 [R=301,L]

# Categorie : Nom-categorie
RewriteRule ^index.php/([A-Z][A-Za-z0-9_-]*)$ /weblog/category/$1 [R=301,L]

# Archives : YYYY/MM
RewriteRule ^index.php/([0-9]{4})/([0-9]{2}) /weblog/archive/$1/$2

Haut de page