🔎 Error 405 – Method Not Allowed (Método no permitido)
El error 405 aparece cuando el servidor recibe una solicitud HTTP usando un método no permitido para ese recurso.
Por ejemplo: enviar un formulario con POST a una URL que solo acepta GET.
✅ Causas más comunes
-
🔄 El recurso solo permite ciertos métodos HTTP (GET, POST, PUT, DELETE).
-
📮 Envío de formularios a rutas que no aceptan el método usado.
-
⚙️ Configuraciones de Apache/Nginx que restringen métodos.
-
🔐 Reglas en .htaccess bloqueando métodos específicos.
-
🛡️ ModSecurity o firewall bloqueando métodos como PUT o DELETE.
-
🧩 Plugins o frameworks (Laravel, WordPress, Node.js) mal configurados.
-
❌ API endpoint configurado para un método distinto al solicitado.
🔧 Soluciones recomendadas
1️⃣ Verificar qué método acepta la URL
Ejemplo común:
Tu formulario usa:
Pero el servidor espera:
Solución: corregir la ruta o el método del formulario.
2️⃣ Revisar configuraciones de Apache/Nginx
Apache (.htaccess):
A veces se bloquean métodos así:
Esto causará un 405 si intentas PUT o DELETE.
Nginx:
Si un endpoint no está configurado para manejar cierto método:
Corrige la configuración dentro del bloque location.
3️⃣ Comprobar frameworks o CMS
En Laravel:
Asegúrate de que la ruta acepte el método correcto:
Si envías GET ahí → 405.
En WordPress:
Un plugin o servicio REST puede bloquear métodos como:
-
PUT -
PATCH -
DELETE
Revisar permisos en functions.php o en plugins de seguridad.
4️⃣ Revisar ModSecurity o firewalls
ModSecurity puede bloquear métodos considerados “peligrosos”.
Solución temporal:
cPanel → ModSecurity → Desactivar (solo para pruebas)
O ajustar reglas de seguridad en tu servidor.
5️⃣ Confirmar que la API esté correctamente definida
Muchas APIs solo aceptan métodos específicos.
Ejemplo:
Revisa la documentación y adapta la petición.
6️⃣ Corregir redirecciones mal configuradas
Una mala redirección puede cambiar el método:
-
De POST → a GET
-
De PUT → a GET
Esto genera 405 al llegar al recurso final.
🔐 Consejo Pro
Revisa qué métodos permite realmente el servidor usando la cabecera:
La verás en la respuesta del servidor cuando lanza el 405.
Esto te indica qué métodos están permitidos y cuáles no.