Votre site affiche un message « Error 405 Method Not Allowed » ?
Pas de panique, c’est un problème fréquent. Voici 11 méthodes concrètes pour la corriger vous-même.
| Caractéristique | Description |
|---|---|
| Code d’erreur | 405 Method Not Allowed |
| Type d’erreur | Erreur côté client, mais la cause est souvent côté serveur. |
| Variantes d’erreurs | HTTP Error 405, 405 Not Allowed, « This page isn’t working ». |
| Causes d’erreur | Méthode HTTP non autorisée, configuration incorrecte du serveur, permissions de fichiers, problème de plugin. |
Comment corriger l’erreur 405 : 11 méthodes pas à pas
L’erreur 405 indique que le serveur web a bien reçu la requête du navigateur, mais il refuse la méthode HTTP utilisée. Par exemple, vous essayez d’envoyer des données avec une méthode POST sur une URL qui n’accepte que la méthode GET.
On va voir comment résoudre ce problème en suivant une liste d’actions, de la plus simple à la plus technique.
1. Vérifiez l’URL
Ça peut paraître simple, mais une faute de frappe dans l’URL est une cause fréquente. Le navigateur essaie d’accéder à une ressource qui n’existe pas ou qui est mal configurée à cette adresse précise.
Assurez-vous que l’URL que vous essayez d’atteindre est correctement orthographiée. Un seul caractère manquant ou en trop peut déclencher l’erreur.
2. Annulez les mises à jour récentes
Une erreur 405 apparaît souvent juste après une mise à jour. Que ce soit le CMS (comme WordPress), un thème ou un plugin, une nouvelle version peut créer un conflit.
Si vous êtes sur WordPress, vous pouvez utiliser un plugin comme Core Rollback. Cet outil permet de revenir facilement à une version précédente de WordPress pour voir si l’erreur disparaît. Si c’est le cas, le problème vient de la compatibilité avec la dernière mise à jour.
3. Désinstallez les plugins, thèmes et extensions récents
Les plugins et les thèmes peuvent modifier le fonctionnement de votre site, y compris les règles du serveur. Un nouveau plugin peut entrer en conflit avec un autre ou avec la configuration de votre serveur.
La méthode la plus simple pour vérifier :
- Allez dans votre tableau de bord WordPress (ou autre CMS).
- Désactivez tous les plugins.
- Si l’erreur 405 disparaît, réactivez-les un par un jusqu’à trouver le coupable.
- Faites la même chose avec votre thème. Passez temporairement à un thème par défaut (comme Twenty Twenty-Four) pour voir si le problème persiste.
4. Vérifiez la configuration de votre serveur web
Le problème vient souvent directement de la configuration du serveur. Les deux types de serveurs les plus courants sont Apache et NGINX. Chacun a son propre fichier de configuration qui peut interdire certaines méthodes HTTP.
- Pour Apache : Le fichier à vérifier est le
.htaccess, situé à la racine de votre site. Cherchez des règles qui limitent les méthodes de requête, comme des directives<LimitExcept>. - Pour NGINX : Le fichier est
nginx.conf. Vous devez chercher des directives commelimit_exceptqui pourraient bloquer des méthodes comme POST ou PUT.
Si vous ne savez pas comment faire, demandez à votre hébergeur. Ils peuvent vérifier rapidement ces fichiers pour vous.
5. Inspectez le fichier .htaccess
Pour les utilisateurs d’Apache, le fichier .htaccess est un suspect numéro un. Il contient des règles de réécriture (RewriteRule) qui peuvent rediriger des requêtes.
Parfois, une règle est mal écrite et provoque l’erreur 405. Cherchez des lignes qui contiennent le drapeau [R=405]. Si vous en trouvez une, essayez de la commenter en ajoutant un # au début de la ligne. Sauvegardez le fichier et testez à nouveau votre page.
6. Examinez les journaux du serveur
Les journaux (logs) de votre serveur sont une mine d’or pour trouver la cause d’une erreur. Ils enregistrent chaque requête faite à votre site et la réponse du serveur.
Les deux fichiers à chercher sont :
access.log: Enregistre toutes les requêtes.error.log: Enregistre toutes les erreurs.
Vous pouvez y accéder via le panneau de contrôle de votre hébergeur (cPanel, hPanel…) ou en ligne de commande si vous avez un accès SSH. Cherchez les lignes qui correspondent à l’heure où l’erreur s’est produite et qui mentionnent le code 405.
Commandes utiles en SSH pour trouver l’erreur :
Pour Apache : tail -f /var/log/apache2/error.log | grep "405"
Pour NGINX : tail -f /var/log/nginx/error.log | grep "405"
7. Corrigez les permissions des fichiers
Des permissions de fichiers incorrectes peuvent empêcher le serveur d’exécuter correctement un script. Si un script n’a pas la permission de s’exécuter, le serveur peut renvoyer une erreur 405.
En général, les permissions doivent être :
- 755 pour les dossiers.
- 644 pour les fichiers.
La plupart des hébergeurs proposent un outil dans leur panneau de contrôle pour réinitialiser les permissions par défaut. C’est le moyen le plus sûr de corriger ce problème sans faire d’erreur.
8. Vérifiez les modifications de la base de données
Certains plugins ou mises à jour modifient directement votre base de données. Ces changements peuvent parfois être la source de l’erreur 405. Il est difficile de repérer la modification exacte, mais vous pouvez vérifier quand la dernière modification a eu lieu.
Avec un outil comme phpMyAdmin, vous pouvez voir la date de dernière mise à jour des tables. Si elle correspond au moment où l’erreur a commencé, c’est une bonne piste.
Requête SQL pour vérifier la dernière mise à jour :
Si vous êtes à l’aise avec SQL, vous pouvez utiliser cette requête dans phpMyAdmin pour voir la date de la dernière modification. Remplacez ‘nom_de_la_base_de_données’ par le nom de votre BDD.
SELECT UNIX_TIMESTAMP(MAX(UPDATE_TIME)) AS last_update FROM information_schema.tables WHERE TABLE_SCHEMA = 'nom_de_la_base_de_données' GROUP BY TABLE_SCHEMA;
9. Vérifiez vos scripts et votre code
Si vous avez un site développé sur mesure, l’erreur peut venir de votre propre code. Un formulaire HTML peut par exemple utiliser method="POST" pour envoyer des données à une URL qui n’est configurée que pour accepter les requêtes GET.
Pour déboguer, la meilleure approche est de copier votre site sur un environnement local (sur votre ordinateur). Vous pourrez alors modifier le code et tester sans affecter le site en ligne. Regardez les scripts qui gèrent les formulaires ou les appels API.
10. Restaurez votre site à partir d’une sauvegarde
Si rien ne fonctionne et que vous êtes bloqué, la restauration est une option fiable. C’est la solution de dernier recours, mais elle est très efficace.
La plupart des hébergeurs proposent des sauvegardes automatiques quotidiennes. Restaurez votre site à une date où vous êtes sûr qu’il fonctionnait correctement. Si l’erreur disparaît, le problème a été introduit entre la date de la sauvegarde et aujourd’hui.
11. Vérifiez vos enregistrements DNS
C’est une cause plus rare, mais un enregistrement DNS mal configuré peut aussi causer une erreur 405. Si votre site a récemment migré vers un nouveau serveur, il est possible que l’enregistrement de type A ne pointe pas vers la bonne adresse IP.
Vérifiez que votre enregistrement A pointe bien vers l’adresse IP correcte de votre hébergement. Vous pouvez trouver cette information dans le panneau de contrôle de votre hébergeur.
Comprendre l’erreur 405 en profondeur
Maintenant que vous avez les solutions, il est utile de comprendre pourquoi cette erreur se produit. Ça vous aidera à l’éviter à l’avenir.
Que sont les méthodes HTTP ?
Les méthodes HTTP sont comme des « verbes » utilisés par votre navigateur pour communiquer avec un serveur. Chaque méthode demande une action différente.
Quand une erreur 405 se produit, le serveur doit inclure un en-tête Allow dans sa réponse. Cet en-tête liste les méthodes qui sont autorisées pour cette URL spécifique (par exemple : Allow: GET, HEAD).
| Méthode | Ce que ça veut dire |
|---|---|
| GET | Demander une ressource (ex: afficher une page web). |
| POST | Envoyer des données pour créer une ressource (ex: soumettre un formulaire). |
| PUT | Remplacer une ressource existante par de nouvelles données. |
| DELETE | Supprimer une ressource. |
| PATCH | Modifier une partie d’une ressource. |
| HEAD | Comme GET, mais ne récupère que l’en-tête, pas le contenu. |
| OPTIONS | Demander quelles méthodes sont autorisées pour une URL. |
Différence entre l’erreur 405, 404, 401 et 501
Il est facile de confondre les codes d’erreur. Voici une explication simple pour les différencier :
- Erreur 405 (Method Not Allowed) : La page existe, mais vous utilisez la mauvaise méthode pour y accéder. C’est comme sonner à la porte de livraison alors qu’il fallait utiliser la porte d’entrée.
- Erreur 404 (Not Found) : La page n’existe pas à cette adresse. C’est comme chercher une maison à une adresse qui n’existe pas.
- Erreur 401 (Unauthorized) : Vous n’avez pas le droit d’accéder à cette page. Vous devez vous connecter. C’est une porte fermée à clé sans que vous ayez la clé.
- Erreur 501 (Not Implemented) : Le serveur ne comprend pas la méthode que vous demandez. C’est une erreur côté serveur, il ne sait pas comment traiter votre requête.
Comment prévenir l’erreur 405 à l’avenir ?
Pour éviter de rencontrer à nouveau cette erreur, voici quelques bonnes pratiques :
- Documentez vos API : Si vous développez, notez quelles méthodes (GET, POST…) sont autorisées pour chaque URL. Des outils comme Swagger ou OpenAPI sont faits pour ça.
- Faites des tests automatiques : Mettez en place des scripts qui vérifient que vos pages répondent correctement aux bonnes et aux mauvaises méthodes HTTP.
- Vérifiez les configurations après mise à jour : Après chaque mise à jour majeure, jetez un œil aux fichiers
.htaccessounginx.confpour vous assurer que rien n’a été modifié de manière inattendue. - Utilisez un environnement de test (staging) : Ne déployez jamais de changements directement sur votre site en production. Testez-les d’abord sur une copie de votre site.
L’erreur 405 Method Not Allowed indique que la méthode de requête est interdite sur une page qui existe. La solution se trouve presque toujours dans la configuration du serveur, les plugins ou les permissions des fichiers.
En suivant les étapes de ce guide, vous devriez pouvoir identifier la cause et corriger le problème vous-même.
