L' Error 405 "Method Not Allowed" és un codi d'estat HTTP que indica que el servidor ha rebut una sol·licitud utilitzant un mètode HTTP que no és permès per al recurs sol·licitat. Encara que el servidor comprèn la sol·licitud, no accepta el mètode utilitzat, com GET, POST, PUT, entre d'altres.
Aquest error pot afectar greument l'experiència de l'usuari i la funcionalitat del lloc web. En aquest article, abordarem què és l'error 405, les causes més comunes de la seva aparició, i com resoldre'l de manera efectiva amb exemples pràctics.
L'error 405 es produeix quan el servidor rep una sol·licitud HTTP amb un mètode que no està permès per a la URL sol·licitada.
Els mètodes HTTP més comuns inclouen:
Les causes principals d'aquest error inclouen:
POST en una URL que només permet GET.Depenent del navegador o del servidor que s'utilitzi, aquest error es pot presentar amb diferents missatges, com ara:
A continuació, es descriuen diverses estratègies que et poden ajudar a resoldre aquest problema, amb exemples pràctics que et permetran entendre com aplicar les solucions.
Amb SW Hosting, tindràs la tranquil·litat de saber que comptem amb les eines i el coneixement per gestionar i solucionar aquests problemes ràpidament.
Un dels errors més comuns que provoca el codi 405 és utilitzar un URL incorrecte. Assegura't que l'adreça sigui la correcta i que coincideixi amb la pàgina o recurs que vols accedir.
Exemple:
Si intentes enviar un formulari mitjançant una sol·licitud POST a www.exemple.com/productos/actualizar, però el recurs només permet GET, obtindràs l'error 405. Verifica que la URL a la qual estàs enviant dades permeti sol·licituds POST.
Solució:
Consulta la documentació o la configuració del servidor per assegurar-te que la URL suporta el mètode POST. Si no és així, ajusta la URL o el mètode de la sol·licitud.
Si utilitzes Apache, és important verificar el fitxer .htaccess, ja que pot contenir regles que limitin l'ús de certs mètodes HTTP. Per revisar-ho:
.htaccess al directori arrel del teu lloc.POST, PUT o altres.Exemple:
<Limit GET POST>
Order Allow,Deny
Allow from all
</Limit>
En aquest cas, el fitxer .htaccess només permet els mètodes GET i POST. Si intentes utilitzar PUT, es generarà l'error 405.
Solució:
Si necessites habilitar PUT o qualsevol altre mètode, ajusta les directives Limit:
<Limit GET POST PUT>
Order Allow,Deny
Allow from all
</Limit>
El servidor web, ja sigui Apache o Nginx, pot estar configurat per rebutjar certs mètodes HTTP. Assegura't de revisar les configuracions clau, com els blocs location a Nginx o les directives a Apache.
Exemple en Apache:
<Limit> i <LimitExcept>Si a la teva configuració d'Apache tens:
<LimitExcept GET POST>
Deny from all
</LimitExcept>
Això significa que qualsevol mètode HTTP diferent de GET i POST serà bloquejat, cosa que provocarà un error 405 si intentes fer servir DELETE o PUT.
mod_allowmethodsEn lloc de fer servir les directives <Limit> o <LimitExcept>, pots utilitzar mod_allowmethods per gestionar els mètodes permesos de manera més senzilla. La configuració es veuria així:
<Location "/">
AllowMethods GET POST OPTIONS
</Location>
Això permet explícitament només els mètodes GET, POST i OPTIONS, oferint una gestió més clara i segura de les sol·licituds HTTP.
Exemple a Nginx:
Verifica que les directives limit_except al fitxer de configuració no estiguin restringint els mètodes.
location /api/ {
limit_except GET {
deny all;
}
}
Si intentes utilitzar POST en aquest bloc, l'error 405 es retornarà.
Solució:
Ajusta el bloc location per permetre altres mètodes segons calgui:
location /api/ {
limit_except GET POST {
allow all;
}
}
Si l'error 405 va aparèixer després d'instal·lar algun connector o plugin en un CMS (com WordPress), és recomanable desactivar-los per identificar si estan interferint amb les sol·licituds HTTP. Molts connectors de seguretat poden bloquejar certs mètodes per defecte.
Exemple:
Si vas instal·lar un plugin de seguretat a WordPress que bloqueja sol·licituds PUT per evitar vulnerabilitats, podria estar generant l'error 405 a la teva API personalitzada.
Solució: Desactiva temporalment el connector per verificar si és el causant del problema. Si és així, configura les regles de seguretat per permetre els mètodes HTTP necessaris.
Assegura't que els fitxers i directoris tinguin els permisos correctes al teu servidor. Els permisos mal configurats poden impedir que s'executin les sol·licituds HTTP adequadament.
Exemple:
Si el fitxer upload.php no té els permisos adequats (chmod 755), pot impedir que les sol·licituds POST que pugen fitxers es completin, cosa que podria derivar en un error 405.
Solució:
Assegura't que els permisos dels fitxers siguin correctes utilitzant ordres com chmod o ajustant els permisos des del tauler de control del servidor.
Els logs del servidor contenen informació detallada sobre els errors que es produeixen. Revisa els registres per obtenir més informació sobre l'error 405 i les possibles causes.
/var/log/apache2/./var/log/nginx/.Exemple:
tail -f /var/log/apache2/error.log
Revisa els registres per identificar si alguna configuració específica està causant l'error.
Si l'error 405 passa durant la interacció amb una API, revisa la seva documentació per assegurar-te que utilitzes el mètode HTTP adequat per a l'endpoint en qüestió.
Exemple:
Si l'API que estàs utilitzant només permet sol·licituds GET per consultar recursos, però intentes utilitzar POST, rebràs un error 405.
Solució: Revisa la documentació de l'API i ajusta el mètode HTTP d'acord amb les especificacions correctes.
Si tens un Firewall d'Aplicacions Web (WAF) o algun firewall actiu al teu servidor, potser estàs bloquejant certs mètodes HTTP.
Exemple:
Un WAF podria estar configurat per bloquejar mètodes com PUT i DELETE per motius de seguretat, generant l'error 405.
Solució: Ajusta les regles del WAF per permetre els mètodes necessaris o desactiva-ho temporalment per verificar si el tallafocs és la causa del problema.
Si has fet canvis recents i no pots identificar la causa de l'error, considera restaurar una còpia de seguretat funcional fins que puguis identificar la causa del problema.
Quan un error 405 passa a causa d'una URL mal configurada o trencada, és recomanable utilitzar eines que ajudin a identificar enllaços trencats o incorrectes al teu lloc web. Una eina recomanada per a aquest propòsit és Dead Link Checker.
Aquesta eina et permetrà:
Com utilitzar Dead Link Checker:
L' Error 405 Method Not Allowed pot semblar complex, però aplicant les solucions descrites i seguint els exemples, és possible identificar i corregir la causa ràpidament. Assegura't d'utilitzar els mètodes HTTP correctes i de configurar adequadament el servidor. T'ajudarà a prevenir futurs errors i millorar l'experiència dels usuaris al teu lloc web.
A més, utilitzar eines com Dead Link Checker per revisar la integritat dels enllaços al teu lloc t'ajudarà a mantenir un funcionament òptim i lliure d'errors.