Blog / ¿Qué es el Error 405 (Method Not Allowed) y Cómo Solucionarlo?

¿Qué es el Error 405 (Method Not Allowed) y Cómo Solucionarlo?

por SW Team

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.

¿Por qué Aparece el Error 405 Method Not Allowed?

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:

  • GET: Recupera una representación de un recurso.
  • POST: Envía datos para ser procesados a un recurso.
  • PUT: Actualiza un recurso con datos nuevos.
  • DELETE: Elimina un recurso.
  • HEAD: Recupera la información del encabezado de un recurso, sin el cuerpo.
  • OPTIONS: Recupera los métodos admitidos y otras opciones para un recurso.
  • CONNECT: Crea una conexión de red a un recurso.
  • TRACE: Recupera un rastro de diagnóstico de las acciones realizadas por un recurso.
  • PATCH: Aplica modificaciones parciales a un recurso.

Las principales causas de este error incluyen:

  • Método HTTP incorrecto: Un ejemplo típico es intentar realizar una solicitud POST en una URL que solo permite GET.
  • Configuración incorrecta del servidor: Fallos en la configuración del servidor, como Apache o Nginx, pueden bloquear ciertos métodos HTTP.
  • Restricciones de la API: Algunas APIs limitan el uso de ciertos métodos para determinados endpoints.
  • Reglas de seguridad: Firewalls o reglas de seguridad en el servidor pueden bloquear métodos específicos.

Variaciones del Error 405

Dependiendo del navegador o del servidor que se utilice, este error puede presentarse con diferentes mensajes, como por ejemplo:

  • Error HTTP 405 – Method Not Allowed
  • 405 No Permitido
  • HTTP 405 Method Not Allowed

¿Cómo Solucionar el Error 405 Method Not Allowed?

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.

1. Verifica la URL Correcta

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.

2. Revisa el Archivo .htaccess

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:

  • Localiza el archivo .htaccess en el directorio raíz de tu sitio.
  • Comprueba que no existan directivas que limiten los métodos 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>

3. Configura Correctamente el Servidor Web

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:

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

  1. Opción 2: Usando mod_allowmethods

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

4. Desactiva Plugins o Extensiones Nuevos

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.

5. Verifica los Permisos de Archivos

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.

6. Consulta los Registros 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.

  • En Apache, los logs suelen ubicarse en /var/log/apache2/.
  • En Nginx, los registros se encuentran en /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.

7. Asegúrate de Usar el Método HTTP Correcto en la API

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.

8. Revisa las Reglas del Firewall

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.

9. Restaura una Copia de Seguridad

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.

Herramientas Útiles para Identificar URLs Incorrectas

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

  • Verificar enlaces rotos en un sitio web.
  • Identificar URLs incorrectas que podrían estar generando errores HTTP.
  • Optimizar el rendimiento de tu página al corregir enlaces que no responden correctamente.

Cómo usar Dead Link Checker:

  1. Ingresa la URL de tu sitio web en el campo de verificación.
  2. Haz clic en "Check" para iniciar el análisis.
  3. La herramienta te mostrará una lista de enlaces rotos que puedes corregir o revisar para evitar errores como el 405.

Enlaces a Recursos Adicionales

Conclusión

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.

i
Email send icon