Blog / Què és l'Error 405 (Method Not Allowed) i Com Solucionar-ho?

Què és l'Error 405 (Method Not Allowed) i Com Solucionar-ho?

per SW Team

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.

Per què apareix l'Error 405 Method Not Allowed?

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:

  • GET: recupera una representació d'un recurs.
  • POST: Envia dades per ser processades a un recurs.
  • PUT: Actualitza un recurs amb dades noves.
  • DELETE: Elimina un recurs.
  • HEAD: Recupera la informació de la capçalera d'un recurs, sense el cos.
  • OPTIONS: Recupera els mètodes admesos i altres opcions per a un recurs.
  • CONNECT: Crea una connexió de xarxa a un recurs.
  • TRACE: Recupera un rastre de diagnòstic de les accions realitzades per un recurs.
  • PATCH: Aplica modificacions parcials a un recurs.

Les causes principals d'aquest error inclouen:

  • Mètode HTTP incorrecte: Un exemple típic és intentar realitzar una sol·licitud POST en una URL que només permet GET.
  • Configuració incorrecta del servidor: Fallades a la configuració del servidor, com Apache o Nginx, poden bloquejar certs mètodes HTTP.
  • Restriccions de l'API: Algunes APIs limiten l'ús de certs mètodes per a determinats endpoints.
  • Regles de seguretat: Firewalls o regles de seguretat al servidor poden bloquejar mètodes específics.

Variacions de l'Error 405

Depenent del navegador o del servidor que s'utilitzi, aquest error es pot presentar amb diferents missatges, com ara:

  • Error HTTP 405 – Method Not Allowed
  • 405 No Permès
  • HTTP 405 Method Not Allowed

Com Solucionar l'Error 405 Method Not Allowed?

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.

1. Verifica l'URL Correcta

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.

2. Revisa l'arxiu .htaccess

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:

  • Localitza el fitxer .htaccess al directori arrel del teu lloc.
  • Comprova que no hi hagi directives que limitin els mètodes 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>

3. Configura Correctament el Servidor Web

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:

  1. Opció 1: Usant <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.

  1. Opció 2: Usant mod_allowmethods

En 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;
  }
}

4. Desactiva Plugins o Extensions Nous

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.

5. Verifica els Permisos d'Arxius

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.

6. Consulta els Registres 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.

  • A Apache, els logs se solen ubicar a /var/log/apache2/.
  • A Nginx, els registres es troben a /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.

7. Assegura't de der servir el Mètode HTTP Correcte a l'API

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.

8. Revisa les Regles del Firewall

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.

9. Restaura una còpia de seguretat

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.

Eines Útils per Identificar URLs Incorrectes

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à:

  • Verificar enllaços trencats a un lloc web.
  • Identificar URLs incorrectes que podrien generar errors HTTP.
  • Optimitzar el rendiment de la teva pàgina en corregir enllaços que no responen correctament.

Com utilitzar Dead Link Checker:

  1. Introdueix l'URL del teu lloc web al camp de verificació.
  2. Fes clic a "Check" per iniciar l'anàlisi.
  3. L'eina et mostrarà una llista d'enllaços trencats que pots corregir o revisar per evitar errors com el 405.

Enllaços a Recursos Addicionals

Conclusió

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.

i
Email send icon