Il est toujours plus sympa de cliquer sur un lien du genre:
http://www.sbskl.com/linux/activer-les-permaliens-de-wordpress/
Plutôt que :
Je suis donc tout simplement aller dans la configuration de WordPress : Réglages>Permaliens. Je choisis la forme qui me convient :
/%category%/%postname%/
J'enregistre les modifications. Je retourne sur mon blog. Et là… Bling… Plus un seul lien ne fonctionne !
Error 404 : File not found
J'ai loupé quelque chose ?
Et bien deux choses en fait…
- Le module Apache rewrite doit être actif.
- Apache doit prendre en compte les fichiers .htaccess.
Module rewrite
Sans le module rewrite, Apache essaiera bêtement d'aller à la page se trouvant au bout du lien. Page qui n'existe pas réellement. Avec rewrite, Apache va transformer le lien "en clair" fictif en un lien "barbare" réél. L'activation de ce module se fait donc simplement par la commande suivante :
sudo a2enmod rewrite
On recharge la configuration d'Apache :
sudo /etc/init.d/apache2 reload
Prise en compte des fichiers .htaccess
Maintenant que le module rewrite est en place, il faut dire à Apache de lire les fichiers .htaccess pour y trouver les infos WordPress de "rewritring"… Sinon, Error 404…
Ouvrir le fichier de configuration Apache du site, pour ma part : /etc/apache2/sites-enabled/000-default. Rechercher la section :
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Et remplacer la ligne :
AllowOverride None
Par :
AllowOverride All
Voila, vous venez de dire à Apache de tenir compte des fichiers .htaccess dans le répertoire /var/www.
Conclusion…
Malgré ce que j'ai pu lire sur différents sites le fichier .htaccess généré par WordPress ne m'a posé aucune difficulté. Seul la configuration par défaut de mon serveur Apache posait problème puisqu'il ne tenait pas compte des fichiers .htaccess et que le module rewrite n'était pas actif.
Merci à toi ! J’avais le problème et j’ai testé la méthode pour « free » avec l’ajout du /index.php/, mais cela ne me convenait pas esthétiquement. Après modification du fichier de configuration de mon apache (httpd.conf) pour activer le module rewrite et changer le AllowOverride du dossier www, ça fonctionne impect sous mon local ! Reste plus qu’à mettre en oeuvre pour celui en ligne 🙂
Merci pour les tuyaus!
C’est sympa de partager ses galères et les solutions.
A+