Corriger l’erreur HTTP 405 Method Not Allowed

Une erreur 405 Method Not Allowed signifie que le serveur web a compris votre requête mais a refusé la méthode HTTP que vous avez utilisée. Une requête GET a atteint un endpoint qui n’accepte que POST ; un plugin de sécurité a bloqué les appels PUT de l’éditeur de blocs ; une règle .htaccess a supprimé DELETE. Le serveur sait ce que vous voulez, mais il ne le traitera pas de cette manière.

Réponse rapide : Dans WordPress, la cause la plus fréquente d’une erreur 405 est un plugin de sécurité qui bloque les appels PUT ou DELETE de l’éditeur Gutenberg, ou une directive LimitExcept dans .htaccess. La première solution, la plus rapide, consiste à aller dans Réglages > Permaliens > Enregistrer les modifications pour regénérer le fichier .htaccess. Si cela ne suffit pas, désactivez les plugins de sécurité un par un pour isoler celui qui bloque. Lors de nos tests, réinitialiser .htaccess via Réglages > Permaliens > Enregistrer résout l’erreur dans la plupart des cas où aucun plugin de sécurité n’est installé.

Erreur 405 Not Allowed sur Nginx

Où l’erreur 405 apparaît-elle ?

Utilisez ce tableau pour aller directement à la cause la plus probable avant de passer en revue chaque étape.

Où l’erreur apparaît Cause la plus probable
L’éditeur de blocs n’arrive pas à enregistrer un article Plugin de sécurité bloquant PUT ou DELETE
Formulaire de contact ou de paiement en front-end Plugin de formulaire envoyant la mauvaise méthode HTTP
Endpoint de l’API REST ou commande WP-CLI Règle LimitExcept dans .htaccess
Tout le site ou des zones d’administration précises Directive serveur Nginx ou Apache

Avant d’apporter la moindre modification, sauvegardez votre site web afin de pouvoir revenir rapidement en arrière en cas de problème. WP Staging propose des sauvegardes automatiques avec restauration en un clic. Consultez le guide de sauvegarde et de restauration pour les instructions de configuration.

Mauvaise configuration de LimitExcept dans .htaccess

Une directive LimitExcept dans .htaccess limite les méthodes HTTP que le serveur accepte sur un chemin donné. Voici un exemple courant :

<LimitExcept GET POST>
  Deny from all
</LimitExcept>

Cela bloque PUT, DELETE et PATCH, que l’API REST de WordPress et Gutenberg utilisent pour les mises à jour et les opérations groupées. Un fichier .htaccess auquel un plugin de sécurité ou une modification manuelle a ajouté cette directive est souvent le coupable lorsque l’erreur 405 apparaît pour la première fois après l’installation d’un plugin ou un changement de configuration dans cPanel.

Diagnostic : Consultez le journal d’erreurs de votre serveur à la recherche de lignes contenant 405 (Method Not Allowed) sur des chemins de l’API REST (/wp-json/...). Si vous les y trouvez, une règle LimitExcept en est presque certainement la cause.

Solution : réinitialiser le fichier .htaccess

Connectez-vous au cPanel de votre hébergement et ouvrez le Gestionnaire de fichiers.

Gestionnaire de fichiers cPanel

Accédez au répertoire racine de votre installation WordPress, généralement public_html ou www.

Dossier public_html

Localisez le fichier .htaccess dans le répertoire racine.

Voir le fichier .htaccess

Faites un clic droit sur le fichier .htaccess et sélectionnez Télécharger pour enregistrer une sauvegarde sur votre ordinateur.

Télécharger le fichier .htaccess

Faites à nouveau un clic droit sur le fichier, choisissez Renommer, et renommez-le en .htaccess.bak. Cela le désactive temporairement sans le supprimer.

Renommer le fichier .htaccess pour dépanner l'erreur 501

Une fois l’ancien fichier .htaccess désactivé, allez dans Réglages > Permaliens dans votre tableau de bord WordPress et cliquez sur Enregistrer les modifications. WordPress regénère un fichier .htaccess propre, sans aucune règle problématique.

Enregistrer les permaliens WordPress pour corriger l'erreur HTTP 501 not implemented

Vérifiez votre site. Si l’erreur 405 a disparu, ouvrez l’ancien fichier .htaccess.bak et comparez-le ligne par ligne avec le nouveau fichier pour trouver la directive LimitExcept. Supprimez-la de la sauvegarde et renommez celle-ci en .htaccess, ou conservez la version regénérée.

Si vous êtes sur Nginx, .htaccess n’a aucun effet. Vérifiez dans nginx.conf la présence de directives limit_except ou deny équivalentes dans le bloc server ou location de votre site.

Plugin de sécurité bloquant les méthodes HTTP

D’après les tickets de support WP STAGING, le déclencheur d’erreur 405 le plus fréquent sur une installation WordPress fonctionnelle est le pare-feu d’un plugin de sécurité qui bloque les requêtes PUT ou DELETE de l’éditeur de blocs. Des plugins comme Wordfence et Sucuri vous permettent de restreindre les méthodes HTTP que le serveur accepte. Lorsqu’ils bloquent PUT ou DELETE, les requêtes d’enregistrement de Gutenberg échouent avec une erreur 405 et l’éditeur affiche une erreur d’enregistrement générique.

Diagnostic : Désactivez temporairement votre plugin de sécurité et essayez à nouveau d’enregistrer l’article. Si l’erreur 405 disparaît, le plugin en est la cause.

Solution : identifier le plugin qui bloque

Connectez-vous à votre tableau de bord WordPress et allez dans Extensions.

Sélectionner les plugins dans le tableau de bord WordPress

Sélectionnez tous les plugins actifs, ouvrez le menu déroulant Actions groupées en haut, choisissez Désactiver, puis cliquez sur Appliquer.

Désactiver les plugins pour dépanner l'erreur HTTP 501 not implemented dans WordPress

Après avoir désactivé tous les plugins, vérifiez si l’erreur 405 a disparu. Si c’est le cas, réactivez chaque plugin un par un, en testant votre site après chacun, jusqu’à ce que l’erreur réapparaisse. C’est ce plugin qui bloque la requête.

Une fois que vous l’avez identifié, vérifiez les paramètres de pare-feu ou de méthodes HTTP du plugin. Pour Wordfence, regardez sous Firewall > All Firewall Options les méthodes HTTP autorisées et confirmez que PUT et DELETE en font partie. Pour Sucuri, vérifiez dans les paramètres Hardening la présence de restrictions sur les méthodes HTTP.

Configuration du serveur (Nginx et Apache)

Une erreur 405 qui persiste après la réinitialisation du fichier .htaccess et la désactivation des plugins pointe généralement vers la configuration du serveur web. Sous Apache, les directives Limit et LimitExcept à l’intérieur d’un fichier de configuration d’hôte virtuel peuvent bloquer des méthodes sur l’ensemble du site. Sous Nginx, un bloc limit_except GET POST {} dans le bloc server ou location a le même effet.

Diagnostic : consultez les journaux de votre serveur

Les journaux d’accès enregistrent chaque requête avec son code d’état HTTP. Les journaux d’erreurs indiquent pourquoi le serveur a rejeté la requête. Recherchez les lignes contenant 405 ou method not allowed à proximité du chemin qui a renvoyé l’erreur.

La plupart des panneaux de contrôle d’hébergement mutualisé exposent les journaux dans une section Logs ou Metrics. Sur un VPS ou un serveur dédié, consultez /var/log/apache2/error.log ou /var/log/nginx/error.log.

Solution : mettre à jour la configuration du serveur

Pour Apache, localisez le fichier de configuration de l’hôte virtuel de votre site (généralement sous /etc/apache2/sites-enabled/) et recherchez les blocs <Limit> ou <LimitExcept>. Ajoutez les méthodes HTTP requises ou supprimez la restriction.

Pour Nginx, trouvez le bloc limit_except à l’intérieur du bloc server de votre site et ajoutez les méthodes manquantes, ou supprimez le bloc si votre configuration n’en a pas besoin.

Après avoir modifié la configuration, rechargez le serveur :

# Apache
sudo systemctl reload apache2

# Nginx
sudo systemctl reload nginx

Sur un hébergement mutualisé, vous ne pouvez pas modifier directement la configuration globale du serveur. Contactez le support de votre hébergeur et décrivez les méthodes HTTP bloquées ainsi que le chemin d’URL précis qui renvoie l’erreur 405.

Restrictions de méthodes de l’API REST de WordPress

WordPress utilise l’API REST pour les enregistrements de Gutenberg, les opérations de synchronisation des plugins et les commandes WP-CLI. Si l’API REST est désactivée, ou si un hook de plugin ou de thème rejette certaines méthodes HTTP, vous verrez des erreurs 405 sur les chemins commençant par /wp-json/.

Lors de nos tests, les erreurs de méthode de l’API REST dans l’éditeur de blocs sont le plus souvent causées par la combinaison d’un filtre d’authentification REST dans un plugin ou un thème et de la liste blanche de méthodes d’un plugin de sécurité. Activer le mode débogage montre quel composant rejette la requête.

Solution : activer le mode débogage de WordPress pour tracer l’erreur

Ouvrez wp-config.php, remplacez define('WP_DEBUG', false) par define('WP_DEBUG', true), et ajoutez également define('WP_DEBUG_LOG', true) pour écrire les erreurs dans wp-content/debug.log. Enregistrez le fichier.

Activer debug.log et le mode débogage WordPress dans wp-config.php

Reproduisez l’erreur 405, puis ouvrez wp-content/debug.log et recherchez des erreurs d’authentification de l’API REST ou des conflits de filtres. Lorsque vous trouvez le hook ou le plugin responsable, modifiez ses paramètres ou contactez l’auteur du plugin.

Rétablissez WP_DEBUG sur false après le dépannage.

Pour les instructions de configuration, consultez comment activer le journal de débogage de WordPress.

Plugin de formulaire de contact envoyant la mauvaise méthode HTTP

Certains plugins de formulaire de contact et de paiement envoient les données via une requête GET vers un endpoint qui n’accepte que POST, ou utilisent une méthode non standard que le serveur n’accepte pas. Cela produit une erreur 405 sur le front-end plutôt que dans l’administration.

D’après le support WP STAGING, ce schéma apparaît lorsqu’une mise à jour de plugin modifie l’URL de l’endpoint de soumission sans mettre à jour l’attribut method du formulaire. Le plugin se met à envoyer les requêtes vers le nouvel endpoint en utilisant l’ancienne méthode, et le serveur renvoie une erreur 405.

Diagnostic : Ouvrez les outils de développement du navigateur (F12), allez dans l’onglet Réseau, puis soumettez le formulaire. Trouvez la requête qui renvoie l’erreur 405. Vérifiez la colonne Méthode : si elle affiche GET pour un formulaire qui devrait utiliser POST, ou toute autre méthode inattendue, le plugin est mal configuré.

Solution : Commencez par mettre à jour le plugin vers sa dernière version. Si l’erreur persiste, vérifiez dans les paramètres du plugin s’il existe une option de méthode de formulaire ou d’URL de soumission et confirmez qu’elle correspond à ce que le serveur accepte. Si le plugin ne dispose pas d’un tel paramètre, contactez l’auteur du plugin en lui indiquant la méthode de requête et l’URL relevées dans l’onglet Réseau.

Dépannage général

Si aucune des solutions spécifiques ci-dessus n’a résolu l’erreur, suivez ces étapes dans l’ordre.

Recharger la page

Un problème serveur temporaire ou un cache de navigateur obsolète peut produire une erreur 405 ponctuelle. Effectuez un rechargement forcé avec Ctrl + Shift + R sous Windows ou Command + Shift + R sous macOS pour forcer une nouvelle requête.

Vérifier les erreurs d’URL

Vérifiez attentivement l’URL pour détecter d’éventuelles fautes de frappe, barres obliques superflues ou caractères mal placés. Une URL mal formée peut aboutir à un endpoint qui n’accepte pas la méthode que vous avez envoyée.

Annuler toutes les modifications récentes

Si l’erreur 405 est apparue après la mise à jour d’un plugin, d’un thème ou du cœur de WordPress, annulez cette modification. Pour les plugins, WP Rollback permet de restaurer une version précédente. Testez votre site après chaque retour en arrière pour déterminer quelle mise à jour a introduit l’erreur.

Inspecter les modifications récentes de la base de données

Un plugin ou un thème qui écrit dans la base de données peut occasionnellement perturber le routage des requêtes. Pour vérifier la présence de modifications inattendues :

  1. Connectez-vous au cPanel et ouvrez phpMyAdmin.
optimiser la base de données WordPress avec phpMyAdmin dans cPanel
  1. Sélectionnez la base de données associée à votre installation WordPress dans la barre latérale gauche.
Inspecter les modifications récentes de la base de données pour corriger 405 Method Not Allowed

Recherchez les tables orphelines laissées par des plugins récemment désinstallés dans wp_options et wp_usermeta. Supprimez les lignes résiduelles et vérifiez si l’erreur 405 disparaît.

Passer à un thème par défaut

Un thème qui enregistre incorrectement une route de l’API REST peut produire une erreur 405 sur ces chemins. Passer à un thème par défaut fourni avec WordPress permet d’écarter cette possibilité.

Allez dans Apparence > Thèmes dans votre tableau de bord et activez un thème WordPress par défaut.

Passer au thème par défaut pour dépanner l'erreur HTTP 501

Si l’erreur 405 disparaît avec le thème par défaut activé, le problème vient de votre thème d’origine. Examinez les éventuels appels personnalisés à register_rest_route dans le fichier functions.php du thème, ou contactez l’auteur du thème.

Que faire si la solution ne fonctionne pas

Si l’erreur 405 persiste après avoir parcouru toutes les sections ci-dessus, un CDN ou un proxy inverse situé entre le navigateur du visiteur et votre serveur supprime ou réécrit peut-être la méthode HTTP avant que la requête n’atteigne WordPress.

Recherchez une couche CDN ou WAF. Le panneau de contrôle de votre hébergement ou le tableau de bord de votre fournisseur DNS indique généralement si un CDN ou un pare-feu applicatif web (WAF) est actif. Si c’est le cas, examinez ses règles de pare-feu à la recherche de listes blanches de méthodes HTTP. Les services CDN ont souvent des règles qui n’autorisent que GET et POST, ce qui renverra une erreur 405 pour PUT, DELETE ou PATCH avant que la requête n’atteigne WordPress.

Vérifiez les paramètres de l’équilibreur de charge. Si votre site fonctionne derrière un équilibreur de charge, assurez-vous que la configuration du listener ou du backend ne rejette pas les méthodes HTTP non standard.

Contournez temporairement le proxy pour isoler la source. Si vous pouvez envoyer une requête de test directement vers votre serveur d’origine et que l’erreur 405 disparaît, c’est que le proxy filtre la méthode. Collaborez avec votre fournisseur CDN ou votre administrateur système pour ajuster la liste blanche des méthodes.

Conclusion

Une erreur 405 Method Not Allowed dans WordPress a un petit nombre de causes racines : une directive LimitExcept dans .htaccess, un plugin de sécurité bloquant les méthodes de l’API REST, une règle de configuration au niveau du serveur, un plugin envoyant la mauvaise méthode HTTP, ou un CDN filtrant les requêtes en amont. En traitant chaque cause dans l’ordre, en commençant par la réinitialisation du fichier .htaccess, vous résolvez le problème dans la plupart des cas.

Si vous devez revenir en arrière après une modification ratée, le guide de sauvegarde et de restauration WP Staging vous accompagne dans la récupération en quelques clics.

Articles connexes

Rene Hermenau

Auteur : Rene Hermenau

À propos de l'auteur : René Hermenau est le fondateur de WP STAGING. Il travaille sur les sauvegardes WordPress, les environnements de staging, les migrations, la gestion des bases de données et les workflows de déploiement sécurisés.