A nadie le gusta ver un mensaje de error en un sitio web, y esto es algo que por supuesto puede ser muy molesto para los usuarios, así que es importante conocer los principales errores con los que nos podemos topar en nuestra web, y uno de ellos es el denominado HTTP Error 405 (Method Not Allowed).
Al igual que la mayoría de los errores genéricos, este error a primera vista no dice mucho, simplemente te indica que algo falló, pero no te dice por qué exactamente. Lo bueno es que, por lo general, se trata de un error fácil de solucionar, así que vamos a ver en qué consiste el error 405, cuál es la causa principal del mismo y cómo se puede resolver.
Contenido
¿Qué es el error “HTTP Error 405 (Method Not Allowed)”?
El error HTTP Error 405 (Method Not Allowed) se produce cuando nuestro servidor web recibe una petición y la reconoce como válida, sin embargo rechaza el método HTTP que se está utilizando.
En términos un poco más prácticos, esto quiere decir que si bien la petición es correcta, el navegador web no puede acceder a la página deseada porque el método usado en la petición no es el correcto. Dicho de otra forma, la request en sí está bien, lo que está mal es la forma de hacerla.
El protocolo HTTP tiene definidos ciertos métodos para indicar lo que se puede hacer cuando se envía una petición al servidor, y algunos de ellos son los siguientes:
- GET: se utiliza para obtener información relacionada a la URL.
- HEAD: se usa para obtener información sobre las cabeceras de la URL.
- POST: es utilizado para enviar información al servidor, por ejemplo mediante un formulario.
- PUT: reemplaza la información de una URL específica por nueva información enviada por el usuario.
- DELETE: borra la información relacionada a la petición realizada.
Existen otros métodos de petición HTTP, aunque los mencionados aquí arriba suelen ser los más usados.
Hay tres escenarios principales en los cuales nos podemos topar con el error 405:
- El método HTTP utilizado en la petición no está autorizado por un error en la configuración del webserver o de algún otro componente.
- El webmaster puede bloquear un método HTTP por seguridad, lo cual obviamente puede llevar al error 405 si la petición que el servidor recibe requiere utilizar dicho método.
- El método HTTP que usamos en la petición no está autorizado adrede en el servidor, es decir, el proveedor de hosting lo ha bloqueado por alguna razón, generalmente por seguridad.
Es muy posible que mucha gente no se haya topado con este error jamás, porque en realidad no es un error tan común como el error 403 Forbidden por ejemplo, de hecho no debemos confundirlos porque son muy distintos.
Tampoco debemos confundir un error 405 con un error 404, porque a pesar de la similitud son bastante distintos, de hecho un error 404 Not Found nos indica que la URL no fue encontrada o no la introducimos correctamente, mientras que el error 405 reconoce la URL como correcta sin embargo el método HTTP que se usó no es correcto.
HTTP Error 405 (Method Not Allowed): ¿Cómo solucionarlo?
Como ya hemos comentado, los escenarios donde se suele encontrar este error son tres, y en los tres casos el problema viene simplemente porque el método HTTP no está autorizado, sea adrede o no.
Método HTTP desactivado en el sitio por error
Como primera solución, debemos asegurar que los métodos HTTP estén correctamente autorizados en nuestro sitio. Esto va de la mano con nuestro webserver, sea Apache, Nginx u otro, y dependiendo del cambio que necesitemos realizar puede que se requiera la asistencia del proveedor de hosting.
Lo que debemos asegurar en este caso, es que en el archivo donde cargamos las configuraciones del webserver para nuestro sitio, los métodos HTTP se encuentren autorizados. Esto como hemos indicado varía de un servidor web a otro, así que no hay una solución global que aplique a todos los casos, por lo tanto recomendamos revisarlo en conjunto con el proveedor de hosting.
Problemas en el código
Por otro lado, es enteramente posible que el problema se encuentre del lado del código del sitio. En el escenario en que el webmaster haya desactivado un método HTTP por seguridad o por alguna otra razón, debemos trabajar con eso en mente a la hora de programar la web en cuestión. Si el cliente se topa con el error 405 en este caso, quiere decir que hay algo mal programado.
Esto sucede en el caso en que la página o elemento solicitado esté enlazado a un método HTTP que no se tiene que usar. La solución en este caso es ubicar el código que provoca el problema, y ajustarlo para reemplazar el método HTTP por uno que sí tengamos permitido utilizar.
Método no autorizado por el proveedor
Finalmente, la última situación a veces puede ser la más complicada de resolver, y ocurre cuando es el proveedor de hosting quien bloquea un método. Lo cierto es que no es una práctica tan común como puede parecer, pero a veces ocurre.
Aquí no hay mucho por hacer: debemos solicitar al proveedor que autorice el método. Si lo hace, genial entonces, pero si no lo hace tenemos que adaptarnos y buscar una solución, o bien, cambiar de proveedor.
En el caso de querer buscar una solución sin cambiar de proveedor, tendremos que adaptar nuestra web a las configuraciones de seguridad que implementa la empresa de hosting. Esto es algo que obviamente va a variar de un caso a otro, aunque podemos dar un ejemplo para tener una mejor idea de cómo se puede proceder.
Supongamos que el proveedor bloquea el método POST para página en HTML, sin embargo dicho método si está habilitado para páginas en PHP. Si le cambiamos el archivo con extensión html a php es posible que funcione y logremos solventar el error. Obviamente esto es un ejemplo en una situación muy puntual, y quizá no aplique a tu caso, aunque puede darte una idea de cómo solventar el error.
HTTP Error 405 (Method Not Allowed) en WordPress
Hay otras situaciones en sitios basados en WordPress donde también nos podemos topar con el error 405. Dada la naturaleza de WordPress, las soluciones anteriores quizá se puedan aplicar o quizá no, pero podemos probar otras.
Lo primero y principal es revisar si recientemente hubo algún tipo de actualización en nuestro WordPress, ya sea de WordPress en sí o de algún plugin o alguna plantilla/theme. Para el caso WordPress en sí podemos volver a una versión anterior fácilmente usando un plugin como WP Downgrade, y si necesitamos hacer lo mismo con un plugin o con el theme tenemos disponible WP Rollback.
Si hubo algún otro cambio en nuestro sitio que no hayan sido actualizaciones, podemos probar a revertir esos cambios, o por ejemplo si el problema comenzó a suceder luego de instalar un plugin/theme es cuestión de desactivar el plugin/theme temporalmente y ver si el error persiste.
Finalmente, es buena idea si hubo cambios inesperados en la base de datos, los cuales a menudo son causados por plugins, pero incluso si los desactivamos puede que dichos cambios igual queden grabados allí. Para revisar este punto lo ideal es contar con un programador con experiencia en el área, ya que no es algo sencillo de encontrar ni de arreglar.
Si todo lo anterior falla, puedes intentar levantar un backup, recuerda que es importante siempre tener backups de tus sitios web, de ser posible varias copias semanales.
Conclusión
El error denominado como “HTTP Error 405 (Method Not Allowed)” es posiblemente uno de los errores que con menos frecuencia nos vamos a encontrar, esto debido a que ocurre en situaciones muy particulares.
El error 405 suele ser provocada porque hay un método HTTP que no está autorizado y nosotros estamos tratando de usarlo parte de alguna petición. Esta falta de autorización puede estar del lado del webserver o en las configuraciones del propio sitio, y puede ser adrede o puede estar así por error.
Sea como sea, la solución principal pasa por autorizar el método, y en los casos que esto no sea posible, lo que debemos hacer es trabajar con ese detalle en mente para hacer los ajustes necesarios en nuestra web y que funcione correctamente, o bien, si el bloqueo es de parte del proveedor de hosting, siempre existe la posibilidad cambiar por uno que sí tenga el método autorizado según necesitemos.
En sitios basados en WordPress a veces es posible toparse este error luego de que haya actualizaciones de algún tipo, o instalaciones de nuevos plugins y/o themes. También puede darse si se producen cambios inesperados en nuestra base de datos. En todos estos casos, con revertir el cambio/actualización en cuestión el error debería desaparecer.