Encore une partie de la soirée passée à peaufiner mon blog suite à son passage de DC1 à DC2, la quatrième (pour rappel ; chapitre 1, chapitre 2, chapitre 3)

Au menu ce soir:

Problèmes avec Path_info et les slash

Quand je met le blog en mode path_info, je dois inscrire l'adresse http://www.cybercarnet.net/index.php/ (notez bien le dernier «/») pour que les liens vers chaque billet fonctionne (le moteur de dotclear ajoute «post» puis la date puis le titre du billet pour composer l'adresse de ce billet). Exemple :

http://www.cybercarnet.net/index.php/post/2007/05/26/413-kooza-du-cirque-du-soleil

Pour le moment, tout va bien... sauf que si on tape

http://www.cybercarnet.net/index.php/

tout simplement, la page n'apparait pas et on obtient No input file specified. On obtenait aussi cette erreur en cliquant sur le lien du titre du blog (le gros «Cybercarnet en haut») ou en cliquant sur l'onglet «Blog» en haut à droite ou bien sur le lien «Home» dans la colone de gauche lorsqu'on est à l'adresse d'un billet

Cela occasionnait aussi un bug dans le moteur de recherche du blog, ce qui affichait encore No input file specified.. J'avais aussi ce problème sur mon blog version Dotclear 1 et il à coïncidé avec le changement vers php5 de mon hébergeur Dreamhost. 1loup avait eu les mêmes problèmes et avait changé d'hébergeur

Ma solution : Changer l'adresse du blog dans le code de dotclear 2: à toutes les place où il y a le code pour insérer automatiquement l'adresse du blog

{{tpl:BlogURL}}

, j'ai remplacé par l'adresse elle-même:

http://www.cybercarnet.net/

(sans le index.php car c'est le fichier par défaut et je préfère «booster» mon PageRank de la racine de mon domaine)

Pour le moteur de recherche, qui est une fonction native de dotclear 2, je n'ai pas trouvé où modifier son code, alors la solution à été de copier le code final avec l'option «Affichage --> Code source de la page» de mon navigateur web. Cela m'a donné ceci :

<div id="search"><h2><label for="q">Recherche</label></h2> <form action="{{tpl:BlogURL}}" method="get"><fieldset><p><input size="10" maxlength="255" id="q" name="q" value="" type="text" /> <input class="submit" value="ok" type="submit" /></p> </fieldset></form></div>

Alors j'ai enlevé le module de recherche par défaut et j'ai mis ce code dans un widget texte en remplaçant le code pour l'adresse en l'adresse elle-même:

<div id="search"><h2><label for="q">Recherche</label></h2> <form action="http://www.cybercarnet.net/index.php" method="get"><fieldset><p><input size="10" maxlength="255" id="q" name="q" value="" type="text" /> <input class="submit" value="ok" type="submit" /></p> </fieldset></form></div>

Pages connexes

J'ai bidouillé moi-même le thème de mon cybercarnet pour obtenir une page vide ayant la même apparence que le blog, puis j'ai édité le fichier _top.html pour ajouter des onglets «Widgets» et «Web2.0» en haut à gauche. J'ai ensuite commencé à remplir ces sections. La section Web2.0 sera bientôt améliorée... j'y ai juste copié-collé mon mini-mur de boutons 80x15 que j'avais sur mon ancien blog (avec l'effet Snap Preview)

Un Widget de plus à droite

Comme je le disais dans un billet précédent, je suis maintenant moins généreux dans mon utilisation des widgets en page principale de mon cybercarnet. J'ai ajouté celui de Blog-it express hier pour accompagner Plugoo et Mybloglog; mes 3 préférés. Les autres: Flickr, Autoroll, U-lik et del.icio.us on été placés dans une page connexe, ce qui fait plus propre tout en me permettant de tester tout les nouveaux trucs de la blogosphère (je vais bien m'amuser :haha:

Une redirection améliorée

Je vous disais dans le chapitre 1 que j'utilise un fichier .htaccess pour rediriger les anciennes adresse du blog vers leur nouvelle localisation (ceci permet par exemple que mes adresses de billets publiés sur blogasty ou scoopeo vont être redirigées vers la nouvelle adresse des billets respectifs). Je me suis rendu compte que j'avais négligé les archives du blog. Certaines recherches sur google par exemple donnent un résultat qui pointe vers mes archives. Avec dotclear 1, les adresses étaient comme ceci:

http://www.cybercarnet.net/index.php/2007/04/p2

(2eme page des archives du mois d'avril 2007)

...mais sur Dotclear 2, il n'y a qu'une seule page d'archive par mois où seulement les titres des articles sont présentés:

http://www.cybercarnet.net/index.php/2007/04/p2

... Cela donnait une erreur «Page non trouvée» pour de nombreux visiteurs en provenance des moteurs de recherche. Mais avec l'aide de Greg (encore merci) j'ai ajouté deux lignes au fichier .htaccess et le problème est réglé

Au cas ou ça peut aider quelqu'un, voici le .htacces à mettre à la racine pour rediriger les adresses DC1 vers DC2 en path_info:

RedirectMatch permanent /index.php/([0-9]{4}/[0-9]{2}/[0-9]{2}/[0-9]+.*)$ http://www.cybercarnet.net/index.php/post/$1 RedirectMatch permanent http://www.cybercarnet.net/index.php/ http://www.cybercarnet.net/ RedirectMatch permanent /rss.php$ http://www.cybercarnet.net/index.php/feed/rss2$1 RewriteEngine on RewriteRule index.php/([0-9]*)/([0-9]*)/([a-z0-9]*)$ http://www.cybercarnet.net/index.php/archive/$1/$2

(en remplaçant bien entendu cybercarnet.net par votre adresse ;-) )