Contexte :
Lors de ma toute première migration WordPress j’ai rencontré une erreur 404 à chaque fois que je cliquait sur un article. Il s’agit d’une Erreur de Permalien, ou Permalink.
Erreur :
Not Found
The requested URL /url-de-la-page-demande was not found on this server.
Solution :
Le problème peut avoir plusieurs causes :
1/Rafraichir les permaliens
Suite la migration les liens on pu ne pas être correctement généré, le plus simple est donc de se rendre dans REGLAGES > PERMALIENS puis de simplement cliquer sur Enregistrer les modification afin de régénéré tous les permaliens.
2/Activer le mod_rewrite
Le problème peut également venir de votre configuration Apache. La solution ici concerne les serveurs linux disposant d’un accès via un terminal de commande.
Pour vérifier si le mod_rewrite est installé il faudra taper ces deux lignes de commande via un terminal en tant que Root
updatedb locate mod_rewrite.so
Normalement vous devriez avoir un résultat à peut près similaire à cela :
/usr/lib/apache2/modules/mod_rewrite.so /usr/lib/debug/usr/lib/apache2/modules/mod_rewrite.so
Ensuite on active le mod_rewrite avec cette commande :
a2enmod rewrite
Si le fichier /etc/apache2/mods-available/rewrite.load n’existe pas, il vous suffit d’utiliser la commande suivante.
Celle-ci crée un lien logique entre ce module et les fichiers de modules que comprend votre serveur Apache (ils sont placés dans le dossier /etc/apache2/mods-available/)
command echo "LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so" > /etc/apache2/mods-available/rewrite.load a2enmod rewrite
Il faut maintenant vérifier que le fichier de configuration apache de votre site contienne les bonnes valeurs. (Ce fichier se trouve dans /etc/apache2/sites-available/)
A l’intérieur de votre fichier de config (default.conf par exemple) c’est la balise directory qui nous intéresse. Elle est située a l’intérieur de la balise VirtualHost. Cette balise Directory doit au minimum avoir ces valeurs :
<Directory "/var/www/html/mon_site/"> AllowOverride All </Directory>
La valeur qui est entre guillemet juste après le premier Directory doit correspondre au chemin qui mène au site web et AllowOverride doit avoir la valeur All.