Bon, j’ai enfin réussi à faire marcher ces satanés “pretty permalink” !

Et à force de lire la doc à la fois de Wordpress et d’Apache, je me suis rendu compte que les choses n’était pas aussi évidentes que cela et surtout ce qui m’a dérangé est que la doc Wordpress conseille par défaut l’utilisation de fichiers .htaccess (l’interface de gestion nous propose même de le modifier/créer elle-même !) alors que la doc apache le déconseille.

Attention, d’une part Wordpress n’a pas tort et d’autre part c’est parfois plus simple de faire ainsi. Malgré tout, ce n’est pas la seule solution, et ce n’est pas la solution d’ailleurs que j’ai choisie. Au passage, si vous voulez absolument utiliser les fichiers .htaccess, faites attention à bien avoir une option “Allowoverride” dans votre config Apache. Par exemple, quelque chose du genre :

<Directory /le-chemin-absolu-de-votre-install-wordpress>
AllowOverride All
</Directory>

dans le fichier httpd.conf.

Donc, comment faire pour “activer” de jolis permaliens dans Wordpress.

Déjà, il faut activer le module Apache mod_rewrite : en root faire a2enmod rewrite (cela revient à créer un fichier rewrite.load dans le répertoire de conf Apache mods-enabled contenant :

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

Ensuite, au lieu de modifier le .htaccess comme Wordpress le conseille, Apache nous conseille de modifier directement les fichiers de conf principal du serveur et ainsi gagner en perf ! J’ai donc ajouté dans httpd.conf la directive suivante (plus ou moins iso à ce que Wordpress propose) :

<Directory /le-chemin-absolu-de-votre-install-wordpress>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
</Directory>

Attention ne vous faites pas avoir comme moi, c’est bien un chemin absolu qu’il faut indiquer dans directory, et non comme je le faisais un chemin relatif à votre install Apache… (j’ai pour la peine était induit en erreur par la doc Apache !)

Voilà maintenant, redémarrez le serveur web… enjoy !