El Error 405 "Method Not Allowed" es un código de estado HTTP que indica que el servidor ha recibido una solicitud utilizando un método HTTP que no está permitido para el recurso solicitado. Aunque el servidor comprende la solicitud, no acepta el método utilizado, como GET, POST, PUT, entre otros.
Este error puede afectar gravemente la experiencia del usuario y la funcionalidad del sitio web. En este artículo, abordaremos qué es el error 405, las causas más comunes de su aparición y cómo resolverlo de manera efectiva con ejemplos prácticos. Además, te mostraremos cómo SW Hosting puede ayudarte a prevenir y solucionar estos inconvenientes de forma rápida y eficaz.
El error 405 ocurre cuando el servidor recibe una solicitud HTTP con un método que no está permitido para la URL solicitada.
Los métodos HTTP más comunes incluyen:
Las principales causas de este error incluyen:
POST en una URL que solo permite GET.Dependiendo del navegador o del servidor que se utilice, este error puede presentarse con diferentes mensajes, como por ejemplo:
A continuación, se describen varias estrategias que pueden ayudarte a resolver ese problema, con ejemplos prácticos que te permitirán entender cómo aplicar las soluciones.
Con SW Hosting, tendrás la tranquilidad de saber que contamos con las herramientas y el conocimiento para gestionar y solucionar estos problemas rápidamente.
Uno de los errores más comunes que provoca el código 405 es utilizar una URL incorrecta. Asegúrate de que la dirección sea la correcta y que coincida con la página o recurso que deseas acceder.
Ejemplo:
Si intentas enviar un formulario mediante una solicitud POST a www.ejemplo.com/productos/actualizar, pero el recurso solo permite GET, obtendrás el error 405. Verifica que la URL a la que estás enviando datos permita solicitudes POST.
Solución:
Consulta la documentación o la configuración del servidor para asegurarte de que la URL soporta el método POST. Si no es así, ajusta la URL o el método de la solicitud.
Si estás utilizando Apache, es importante verificar el archivo .htaccess, ya que puede contener reglas que limiten el uso de ciertos métodos HTTP. Para revisarlo:
.htaccess en el directorio raíz de tu sitio.POST, PUT u otros.Ejemplo:
<Limit GET POST>
Order Allow,Deny
Allow from all
</Limit>
En este caso, el archivo .htaccess está permitiendo solo los métodos GET y POST. Si intentas utilizar PUT, se generará el error 405.
Solución:
Si necesitas habilitar PUT o cualquier otro método, ajusta las directivas Limit:
<Limit GET POST PUT>
Order Allow,Deny
Allow from all
</Limit>
El servidor web, ya sea Apache o Nginx, puede estar configurado para rechazar ciertos métodos HTTP. Asegúrate de revisar las configuraciones clave, como los bloques location en Nginx o las directivas en Apache.
Ejemplo en Apache:
<Limit> y <LimitExcept>Si en tu configuración de Apache tienes:
<LimitExcept GET POST>
Deny from all
</LimitExcept>
Esto significa que cualquier método HTTP diferente a GET y POST será bloqueado, lo que provocará un error 405 si intentas usar DELETE o PUT.
mod_allowmethodsEn lugar de usar las directivas <Limit> o <LimitExcept>, puedes utilizar mod_allowmethods para gestionar los métodos permitidos de manera más sencilla. La configuración se vería así:
<Location "/">
AllowMethods GET POST OPTIONS
</Location>
Esto permite explícitamente solo los métodos GET, POST y OPTIONS, ofreciendo una gestión más clara y segura de las solicitudes HTTP.
Ejemplo en Nginx:
Verifica que las directivas limit_except en el archivo de configuración no estén restringiendo los métodos.
location /api/ {
limit_except GET {
deny all;
}
}
Si intentas usar POST en este bloque, el error 405 será devuelto.
Solución:
Ajusta el bloque location para permitir otros métodos según sea necesario:
location /api/ {
limit_except GET POST {
allow all;
}
}
Si el error 405 apareció después de instalar algún plugin o extensión en un CMS (como WordPress), es recomendable desactivarlos para identificar si están interfiriendo con las solicitudes HTTP. Muchos plugins de seguridad pueden bloquear ciertos métodos de forma predeterminada.
Ejemplo:
Si instalaste un plugin de seguridad en WordPress que bloquea solicitudes PUT para evitar vulnerabilidades, podría estar generando el error 405 en tu API personalizada.
Solución: Desactiva temporalmente el plugin para verificar si es el causante del problema. Si es así, configura sus reglas de seguridad para permitir los métodos HTTP necesarios.
Asegúrate de que los archivos y directorios tengan los permisos correctos en tu servidor. Los permisos mal configurados pueden impedir que se ejecuten las solicitudes HTTP adecuadamente.
Ejemplo:
Si el archivo upload.php no tiene los permisos adecuados (chmod 755), puede impedir que las solicitudes POST que suben archivos se completen, lo que podría derivar en un error 405.
Solución:
Asegúrate de que los permisos de los archivos sean correctos utilizando comandos como chmod o ajustando los permisos desde el panel de control del servidor.
Los logs del servidor contienen información detallada sobre los errores que se producen. Revisa los registros para obtener más información sobre el error 405 y sus posibles causas.
/var/log/apache2/./var/log/nginx/.Ejemplo:
tail -f /var/log/apache2/error.log
Revisa los registros para identificar si alguna configuración específica está causando el error.
Si el error 405 ocurre durante la interacción con una API, revisa su documentación para asegurarte de que estás utilizando el método HTTP adecuado para el endpoint en cuestión.
Ejemplo:
Si la API que estás utilizando permite solo solicitudes GET para consultar recursos, pero intentas utilizar POST, recibirás un error 405.
Solución: Revisa la documentación de la API y ajusta el método HTTP de acuerdo con las especificaciones correctas.
Si tienes un Firewall de Aplicaciones Web (WAF) o algún firewall activo en tu servidor, puede que esté bloqueando ciertos métodos HTTP.
Ejemplo:
Un WAF podría estar configurado para bloquear métodos como PUT y DELETE por motivos de seguridad, generando el error 405.
Solución: Ajusta las reglas del WAF para permitir los métodos necesarios o desactívalo temporalmente para verificar si el firewall es la causa del problema.
Si realizaste cambios recientes y no puedes identificar la causa del error, considera restaurar una copia de seguridad funcional hasta que puedas identificar la causa del problema.
Cuando un error 405 ocurre debido a una URL mal configurada o rota, es recomendable utilizar herramientas que ayuden a identificar enlaces rotos o incorrectos en tu sitio web. Una herramienta recomendada para este propósito es Dead Link Checker.
Esta herramienta te permitirá:
Cómo usar Dead Link Checker:
El Error 405 Method Not Allowed puede parecer complejo, pero aplicando las soluciones descritas y siguiendo los ejemplos, es posible identificar y corregir la causa rápidamente. Asegurarte de utilizar los métodos HTTP correctos y de configurar adecuadamente el servidor. Te ayudará a prevenir futuros errores y mejorar la experiencia de los usuarios en tu sitio web.
Además, al elegir SW Hosting, contarás con un servicio de soporte proactivo que te garantiza un funcionamiento óptimo y libre de errores. No dudes en contactarnos para conocer más sobre nuestros servicios y cómo podemos ayudarte a mantener tu sitio en perfecto estado.