Une des nombreuses fonctionnalités de Dotclear 2 est de permettre l'utilisation du PATH_INFO (au lieu de QUERY_STRING) comme méthode pour générer les liens. En pratique, cela veut dire que vous aurez des liens du type :
http://20-100.ch/blog/index.php/post/2007/07/02/Lancement-du-blog
au lieu de :
http://20-100.ch/blog/index.php?post/2007/07/02/Lancement-du-blog.
Quelle différence ? Hé bien, tout d'abord, c'est plus joli ;) ! Ensuite, il paraît que c'est mieux pour le référencement (une URL en mode QUERY_STRING verrait parfois la partie située après le ? être ignorée... à confirmer, mais c'est toujours ça de gagné !). Et pour finir, ça apporte un grand plus pour les statistiques de votre blog : en mode QUERY_STRING, toutes les requêtes sont considérées comme étant sur la même page (index.php), tandis qu'en PATH_INFO, chaque poste sera considéré comme ayant sa propre adresse ! Ce qui permet d'avoir des statistiques plus détaillées...
Toujours est-il qu'au lancement de ce blog, il m'était impossible d'utiliser ce mode ! En regardant un peu de plus près comment le PATH_INFO fonctionne, voici ce que j'ai trouvé :
- Le serveur web (Apache) extrait les données situées après le nom de la page (le
/post/2007/07/02/Lancement-du-blog) pour les mettre dans un variable système
- Le script PHP récupère cette valeur via la variable
$_SERVER["PATH_INFO"]
Je suis donc allé voir dans mon phpinfo(), si cette variable était bien définie, et je ne l'ai pas trouvée. A la place, une variable $_SERVER["ORIG_PATH_INFO"] contenait la valeur attendue. J'ai donc poursuivi mes investigation, pour découvrir que ce cas de figure apparaît sur les serveurs où PHP est en mode CGI (ce qui est le cas chez Wrackweb). J'ai aussi découvert ces lignes dans le fichier inc/config.php de Dotclear 2 :
// If you have PATH_INFO issue, uncomment following lines
// if (!isset($_SERVER['ORIG_PATH_INFO'])) {
// $_SERVER['ORIG_PATH_INFO'] = '';
// }
// $_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'];
Il suffisait donc de décommenter ces lignes pour que le PATH_INFO fonctionne...
Moralité : RTFM, comme diraient mes "amis" de la mailing-list Typo3 ;-)...