Depuis que mon hébergeur a mis ses serveurs en cluster et exécute PHP en CGI et non comme module Apache, certaines fonctions de WordPress ne se comportent pas correctement, notamment les éditeurs de fichiers.
En effet, ces derniers semblent être devenus incapables de modifier les fichiers sans provoquer une erreur HTTP 406 :
HTTP Error 406 – Not acceptable
An appropriate representation of the requested resource /XYZ.php could not be found on this server.
Après quelques recherches, il semblerait que ce soit les filtres du mod_security d’Apache qui, trop restrictifs, empêchent les éditeurs… d’éditer !
La solution consiste donc à désactiver mod_security dans le répertoire où se trouvent les éditeurs (/wp-admin/
dans le cas de WordPress) :
- Créez un fichier .htaccess
- Editez le fichier avec ces instructions :
SecFilterEngine Off SecFilterScanPOST Off
- Sauvegardez : vos éditeurs devraient maintenant fonctionner sans aucune erreur.
Notez que j’ai pris WordPress comme exemple mais cela résout les problèmes d’erreurs 406 quelle que soit l’application utilisée (blog, CMS…).
Mieux vaut créer le .htaccess dans le répertoire qui en a besoin : il est inutile voire déconseillé de désactiver mod_security sur l’ensemble d’un domaine pour des raisons évidentes de sécurité.
A utiliser là où il y a besoin donc.