De plus jolies URL pour mon DotClear
Par Benjamin le jeudi 19 juin 2008, 23:00 - technique - Lien permanent
Vous n'aimez pas la forme des URL que génère votre serveur de blog DotClear (avec des index.php pleins de paramètres)? Voici comment leur donner une figure plus ... humaine.
Ayant décidé d'héberger moi-même mon blog (le blog de Gandi que j'utilisais jusque là est pratique mais pas suffisamment personnalisable à mon goût), j'ai installé la dernière version de DotClear (2.0 RC1) sur mon serveur. L'installation de base est aisée et l'on a vite fait d'avoir un blog opérationnel. Seul bémol, les URL sont toutes très laides, de la forme http://blog.publo.fr/index.php?post/2008/06/19/blablabla....
Ce que je leur reproche, c'est la présence du détail sordide que représente la requête paramétrée à un fichier php. Au delà du préjudice esthétique, ce type d'URL a l'inconvénient de ne pas être très apprécié des moteurs de recherche. Heureusement, avec un peu de travail et quelques recherches sur le web, on trouve facilement de quoi remodeler ces vilaines adresses !
Pour ce faire, il faut paramétrer le blog
- pour qu'il utilise le mode PATH_INFO (il se paramètre dans l'interface d'administration : blogsettings>URL scan method)
- pour dégager de l'URL de base du blog le vilain index.php? : dans mon cas cela devient : http://blog.publo.fr/
A ce stade, les URL générées (celles qui apparaîtront dans le HTML du blog) sont nettement plus jolies. Malheureusement, tous ces liens sont cassés car ils ne pointent plus vers le script de DotClear. C'est à ce moment-là que le mode rewrite d'Apache2 arrive à notre secours : comme son nom l'indique, il permet de réécrire les requêtes. Dans notre cas, il faut se débrouiller pour qu'il ajoute index.php/ à toutes les requêtes, entre l'URL de base (dans mon cas http://blog.publo.fr/) et le reste de la requête (par exemple post/2008/06/19/blablabla).
Pour ce faire, il suffit d'ajouter un fichier .htaccess à la base du répertoire de DotClear contenant
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1
Au préalable, vous aurez bien évidemment activé le mode rewrite par la commande
a2enmod rewrite
Voilà, c'est prêt !
Pour terminer, une petite remarque : de nombreux tutoriaux suggèrent de décommenter les dernières lignes du fichier inc/config.php pour faire cette manipulation. Dans mon cas, cela ne fonctionnait plus en décommentant ces lignes, donc ne le faites qu'en cas d'absolue nécessité !.
Si cet article vous a intéressé, n'hésitez pas à nous laisser un commentaire ou à vous abonner à notre flux RSS.
Peut-être serez-vous également intéressé par ces articles :
Commentaires
Bonsoir,
Petite question par rapport à tout ça: comment faire pour activer la commande "rewrite"? Dans quel fichier? et à quel endroit?
Merci d'avance,
Philippe
Bonjour Phil,
pour activer le module rewrite sous Unix, il suffit d'utiliser la commande
a2enmod rewriteJe ne suis pas sûr que cette commande existe pour une installation sous Windows, mais dans ce cas, un LoadModule dans le fichier apache.conf doit faire l'affaire :
LoadModule rewrite_module modules/mod_rewrite.so