Ошибка HTTP 405 указывает на то, что сервер отклонил конкретный метод HTTP, используемый веб-браузером. Узнайте, почему он может появиться на вашем сайте и как быстро исправить его, не нанося ущерба вашей репутации в интернете.
Нет ничего более неприятного для потребителя, который ищет мгновенного удовлетворения, чтобы наткнуться на ошибку на вашем сайте. Если вместо того, чтобы найти нужную им информацию, они наткнутся на страницу с надписью “ошибка”, скорее всего, подавляющее большинство потребителей покинут ваш сайт.
Но помимо того, что потребители быстро уходят, вы также можете испытать разрушительные последствия для ваших коэффициентов конверсии. Не говоря уже о том, что поисковые системы также обращают внимание на показатели отказов. Ошибка, которая может появиться на вашем сайте и вызвать разочарование у потребителей — это Ошибка HTTP 405.
К сожалению, эта ошибка похожа на что-то мистическое. Она говорит вам, что что-то пошло не так, но не дает более подробного объяснения.
Хорошая новость заключается в том, что с помощью небольшого исследования и усилий с вашего сайта вы можете быстро определить суть проблемы и исправить ее, прежде чем заметите падение активности и продаж.
В этой статье мы поговорим о том, что такое Ошибка HTTP 405, почему она может появиться на вашем сайте, а также о том, как ее исправить. Давайте начнем!
HTTP 405 – это код состояния ответа HTTP. Существует пять видов кодов состояния HTTP-ответа. Все они сообщают пользователю, был ли успешно выполнен определенный HTTP-запрос. Пять основных кодов состояния включают в себя:
1xx коды состояния: Информационные запросы 2xx коды состояния: Успешные запросы 3xx коды состояния: Перенаправление 4xx коды состояния: Ошибки клиента 5xx коды состояния: Ошибки сервера
Сообщение об Ошибке 405 Method Not Allowed – это ошибка клиента, которая указывает на то, что проблема заключается в чем-то на стороне клиента.
Ошибка HTTP 405 указывает на то, что веб-браузер запросил доступ к одной из ваших страниц, и ваш веб-сервер распознал этот запрос. Однако сервер отклонил конкретный метод HTTP, который он использует. В результате ваш веб-браузер не может получить доступ к запрошенной веб-странице. Когда это произойдет, ваши посетители увидят веб-страницу с ошибкой.
Варианты имен Ошибок HTTP 405
Различные веб-серверы, операционные системы и браузеры отображают ошибку по-разному. Важно отметить, что причина проблемы также может меняться от одного сервера к другому.
Наиболее распространенные способы появления Ошибки HTTP 405 для потребителей включают в себя:
- HTTP Ошибка 405 – Метод Не Дозволен
- HTTP Метод Не Дозволен
- 405 Не Дозволено
- Метод Не Дозволен
- HTTP Ошибка 405
Независимо от того, как появляется ошибка, будь то Ошибка HTTP 405 или Метод Не Дозволен, проблема одна и та же, и это то, что ее трудно исправить. Вы знаете, что что-то не так, но понятия не имеете, что это может быть. Вам предстоит найти суть проблемы и устранить ее до того, как она нанесет непоправимый ущерб.
Как исправить Ошибку 405?
Проверьте URL-адрес
Первое, что вам нужно сделать, когда вы видите Ошибку 405 на своем сайте – это проверить, правильно ли вы ввели URL-адрес.
Внимательно посмотрите на URL-адрес и убедитесь, что он содержит все правильные буквы.URL-адрес содержит какие-либо специальные символы, убедитесь, что они вставлены правильно.
Пока вы этим занимаетесь, вы также можете попробовать обновить страницу. Вы можете обнаружить, что обновление страницы может заставить ее правильно загрузиться. Если вы уверены, что ввели правильный URL-адрес, но все еще видите ошибку, выполните откат последних обновлений.
Откат последних обновлений
Большая часть веб-сайтов размещается на таких CMS, как WordPress или Wix. Вы можете обнаружить, что недавнее обновление системы может быть основной причиной проблемы.
Попробуйте подумать, когда вы впервые заметили Ошибку 405 на своем сайте. Это было сразу после того, как вы обновили CMS? Если это так, то подумайте о том, чтобы вернуться к предыдущей версии.
Удаление новых расширений, модулей или плагинов
Расширения и плагины могут быть полезны для улучшения возможностей вашего сайта, но они также могут нанести серьезный ущерб.
Некоторые расширения могут полностью контролировать вашу систему и вносить изменения в любой код, включая PHP, CSS, HTML, JavaScript и вашу базу данных. В этом случае рекомендуется удалить все новые расширения, которые вы недавно добавили в свою систему.
Если вам нужна помощь в удалении расширения, просто сделайте быстрый поиск в Google, чтобы найти официальную документацию для этого процесса.
Дважды проверьте изменения в своей базе данных
Иногда, даже если вы удалите расширение, изменения, внесенные этим расширением в систему, не могут быть полностью возвращены.
Есть некоторые расширения, особенно на CMS WordPress, которые имеют карт-бланш внутри приложения, который включает в себя полный доступ к базе данных. Расширение может изменять записи базы данных, которые не принадлежат самому расширению, а создаются и управляются другими расширениями. Когда это происходит, расширение может не знать, как вернуть изменения в записи базы данных, что приводит к тому, что расширение игнорирует такие вещи во время удаления.
Лучшее, что вы можете сделать в таком случае – это открыть базу данных и вручную просмотреть таблицы и записи, которые могли быть изменены расширением. Или вы можете провести быстрое исследование и попытаться найти людей, которые столкнулись с той же проблемой, чтобы увидеть, как они справились с этой проблемой.
Проверьте файлы конфигурации для вашего веб-сервера
Если двойная проверка изменений базы данных не помогла, попробуйте проверить файлы конфигурации программного обеспечения веб-сервера на наличие непреднамеренных инструкций перенаправления.
Ваше приложение работает либо на веб-серверах Apache, либо на веб-серверах nginx.
Если вы используете Apache, вам необходимо проверить как файл конфигурации сервера apache, так и файл конфигурации сервера apache файл .htaccess. После того, как вы найдете файл .htaccess, откройте его в текстовом редакторе и найдите строки, использующие указания RewriteXXX. В случае, если вы столкнетесь с какими-либо странными указаниями RewriteCond или RewriteRule, попробуйте временно сделать замечание, используя префикс символа #. Перезагрузите веб-сервер и посмотрите, устранена ли проблема.
Если вы используете nginx, вам нужно проверить nginx.conf файл. Файл находится в одном из нескольких общих каталогов: /usr/local/nginx/conf, /etc/nginx или /usr/local/etc/nginx. Как только вы найдете файл, откройте его в текстовом редакторе и выполните поиск указании, использующих флаг кода ответа 405. Сделайте замечания на любые аномалии, а затем перезагрузите сервер, чтобы увидеть, была ли проблема решена.
Проверьте журналы приложений
Журналы приложений содержат историю вашего веб-сайта, в том числе информацию о том, какие страницы были запрошены, к каким серверам он подключался и многое другое.
Открытие журналов приложений может указать вам правильное направление, в котором может возникнуть ошибка.
Расположение журналов приложений зависит от типа используемого сервера. Как только вы их найдете, запустите поиск Ошибок 405. Надеюсь, вы определите, что является основной причиной проблемы.
Отладка кода приложения или скриптов
Если вы перепробовали все вышеперечисленное и ничего не получилось, возможно, пришло время посмотреть, не является ли причиной ошибки проблема в каком-то пользовательском коде вашего приложения.
Вы можете поставить диагноз, вручную отладив приложение и проанализировав журналы приложений и серверов.
Сделайте копию приложения на локальную машину разработки и выполните пошаговую отладку. Вам удастся воссоздать точный сценарий, в котором произошел 405 Метод Не Дозволен, и просмотреть код приложения, когда что-то пойдет не так.
Заключение
Надеемся что наша подробная запись о кодах состояния HTTP, будет полезная для вас. Помните что регулярный контроль и техническое обслуживание помогут сохранить ваш сайт безупречным, а его владельца-беззаботным.
Понравилось то, что вы прочитали?
Подписывайтесь на нашу рассылку и получайте ежедневные обновления о новых учебниках, статьях, курсах и о многом другом!
Просто введите ваш адрес электронной почты, чтобы подписаться.
(Без спамов; ежемесячно два письма; отписаться от рассылки можно в любое время)
Web servers inform clients, like internet browsers for example, about the processing status of the submitted request with the help of HTTP status codes. So there are various codes that confirm the success or failure of a request – along with very specific messages. While some of these messages are encountered relatively frequently with daily use of the World Wide Web, the 405 (Method Not Allowed) error is one of the more rare error messages. In this article you’ll find out exactly what leads to this error message, and why solving the problem is the responsibility of the website operator.
Contents
- What’s behind the 405 HTTP error?
- When does the 405 error occur?
- HTTP error 405: How to fix the problem
- Solution 1: Enable HTTP methods
- Solution 2: Clean up the source code
- Solution 3: Bypass the provider’s security barrier
$1 Domain Names
Register great TLDs for less than $1 for the first year.
Why wait? Grab your favorite domain name today!
Matching email
SSL certificate
24/7/365 support
What’s behind the 405 HTTP error?
The Hypertext Transfer Protocol (HTTP for short) defines methods that indicate possible actions that can be performed on the contacted web server. For example, this includes the following methods:
- GET: Retrieve information associated with a specific URL resource
- HEAD: Retrieve header information linked with a URL resource
- POST: Send data to the web server – for example, form data
- PUT: Replace the data for a specific URL with new data transmitted by the client
- DELETE: Delete the data behind the respective URL
In order to protect your privacy, the video will not load until you click on it.
The administrator can configure each web server so that the individual methods are either allowed or not allowed. For example, if there’s no interactive content on the website, it’s only logical that the POST method isn’t allowed, since the user has no options to enter their own data and send it to the server. Otherwise, the error message mentioned above with the status code 405 would appear, informing the browser and its user that the method is not allowed.
The exact wording of the 405 HTTP message varies from server to server. Here are some common phrases:
- 405 Method Not Allowed
- 405 Not Allowed
- Method Not Allowed
- HTTP 405 Error
- HTTP Error 405 – Method Not Allowed
- HTTP 405 Method Not Allowed
- Error: 405 Method Not Allowed
- 405 – HTTP verb used to access this page is not allowed
- HTTP Status 405 – HTTP method GET is not supported by this URL
When does the 405 error occur?
We have already indicated that the 405 error is caused solely by a server-side problem. But since status code 405 technically belongs to the client error messages (codes with the pattern 4xx), this doesn’t seem to make sense. This contradiction is quickly solved, though: If, as a browser user, you forward a request to the webserver with an HTTP method that it doesn’t allow due to its configuration, the error lies on the client side from the server’s point of view – in this case, the client simply made a wrong request. The server isn’t aware when processing the request of the fact that you’re only interested in the website’s offer, for example, to fill out a contact form.
Three scenarios in particular can lead to a “Method Not Allowed” error message:
- The ban of the corresponding HTTP method is due to a misconfiguration of web servers or software components that are supposed to perform the respective action for the desired URL resource.
- The ban of the HTTP method is from the website operator – in most cases, for security reasons. The error lies in a URL resource of the web project in question, on the grounds that its programming requires its method to not be allowed.
- The HTTP method is not allowed by the hosting provider of the website operator. This particularly occurs with the POST method, which is required for entering data and is blocked by some providers for security reasons when accessing HTML documents.
If you come across a web project that displays the 405 Not Allowed error message, you can hardly solve the problem yourself. While with other HTTP messages you can usually solve the problem using tricks like refreshing the page, restarting the router, or checking the proxy settings, these measures are useless against the 405 error. In this case, it makes sense to contact the responsible website operator or administrator to make the problem known or receive exact information about the causes.
If you yourself are responsible for the site that is displaying the 405 HTTP code to visitors, then the circumstances are of course different: Depending on the cause of the error message, you have several options for solving the problem. To avoid angering your users and/or being penalized by search engines, you should resolve the error as quickly as possible.
Solution 1: Enable HTTP methods
If you’re not sure of the cause of the “405 Method Not Allowed” message, you should always first look at the settings of the software components that are responsible for responding to HTTP requests. Typically, this is handled by the web server, but a pre-connected Proxy or HTTP handler (in ASP.NET web applications) could also be responsible for the problem if the method is simply not enabled. Since the different applications differ from each other in terms of configuration, you first have to find out how the activation or deactivation of the HTTP methods functions for each software.
For Apache web servers, enabled methods are specified with the help of the mod_allowmethods module, for example. This can be controlled using the AllowMethods directive in the <Location> containers, which are needed to specify settings for one or more desired URLs. One configuration that enables access to the resource as well as client-side data entry can be implemented with the following entry:
<Location "/">
AllowMethods GET POST OPTIONS
</Location>
Note
With older Apache versions, permitted HTTP methods are defined with the directives <Limit> and <LimitExcept>
Solution 2: Clean up the source code
If you’ve deliberately blocked an HTTP method, for example, to guarantee the safety of the website (common practice for the PUT method), but the client still triggers such a request to retrieve URL resources, this is often due to incorrect website programming. The requested page or element is therefore incorrectly linked with the method, which is why the 405 error is the logical consequence. The solution is to locate the problematic code in the corresponding HTML document and replace the entered code with the correct request method. If the server configurations and source code are reconciled, then there’s a high possibility that the 405 HTTP error will disappear from the browser window of your visitor.
Solution 3: Bypass the provider’s security barrier
As previously mentioned, the 405 error can also have the background that the corresponding HTTP methods for certain MIME types – like an HTML document, for example – have been disabled by the hosting provider for security reasons. In this case, you can of course contact your provider and ask for approval – but if this isn’t possible, there are tricks that allow you to use the method for your web project anyway.
You can deliver the website with a different MIME type available for the desired method to work around the barrier. POST, for example, is usually deactivated for HTML pages, while the method functions in PHP documents. If you change the extension type, for example, from index.html to index.php, there’s a good chance that you’ll have solved the “405 Method Not Allowed” problem.
In order to protect your privacy, the video will not load until you click on it.
A second trick is to implement the website that causes the HTTP error as the content of the displayed 405 error page. To do this, simply save the page in question in a separate directory and define this in the configuration file as the official 405 error message:
ErrorDocument 405 /PathToFile/example.html
This solution does have the disadvantage, though, that all success page accesses for the page are classified and counted as errors, which complicates the statistical analysis.
403 Forbidden: What does the http status code mean and how do you fix it?
Is your browser displaying an http error 403 instead of the web page you requested? This means that the web server has not granted you access to that page. The reason for this differs from case to case; sometimes the website operator as secured this area from being accessed but sometimes it’s simply a case of adjusting your browser settings. This article outlines the various causes of the http…
403 Forbidden: What does the http status code mean and how do you fix it?
Error 401: Unauthorized – No access to the website
You’re surfing around on the internet, but instead of getting the desired content you only receive an error message: annoying or even downright frustrating. Especially if you don’t exactly know what the status is supposed to mean. How are you expected to solve the problem, if you don’t know what’s causing it? This also goes for the error 401. Here we explain what the error means and what you can…
Error 401: Unauthorized – No access to the website
HTTP 400: Bad Request explained
Internet users are often confronted with error messages. HTTP status codes can be especially annoying, and even more so if you don’t understand what they mean. The message ‘HTTP 400 – Bad Request’ is a mystery for many internet users, but luckily it can be solved in most cases. We explain what the error message means and how to fix the error.
HTTP 400: Bad Request explained
HTTP 408: how to fix the timeout error
Permanent availability is one of the most important things when it comes to a website. However, even the best technical conditions do not offer a 100% guarantee that a website will constantly run smoothly. Connection errors like HTTP error 408 regularly present websites with minor and major difficulties, especially since the causes are often found on the client side. Our guide looks at the causes…
HTTP 408: how to fix the timeout error
GET vs. POST – the two most important HTTP requests compared
The two most common and well-known website HTTP requests are GET and POST. But which request method is better? Learn more about these two HTTP requests and find out which method is the right one for your programming needs.
GET vs. POST – the two most important HTTP requests compared
Am asking this question after doing some research. I did followed the solutions given for this kind of error but did not work for me. Any suggestions as where am going wrong in the below code.I am creating a REST API but when I request the url it is giving me the 405 error.Below is the URI am requesting.
http://localhost:8080/Project/services/start/version
Below is the code snippet.
@Path("/start")
public class StartService {
@GET
@Path("/version")
@Produces({"text/plain","application/xml","application/json"})
public String getVersion() {
String ver="";
try{
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("C:\server\dgr -v" );
BufferedReader stdInput = new BufferedReader(new InputStreamReader
(pr.getInputStream()));
BufferedReader input = new BufferedReader(stdInput);
// String ver ="";
StringBuffer verOutput = new StringBuffer();
while((ver = input.readLine()) != null){
verOutput.append(ver + "n");
System.out.println(ver);
}
}catch (Throwable t)
{
t.printStackTrace();
}
finally {
}
return ver; }
}
web.xml:
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<display-name>eLicensingWeb</display-name>
<servlet-name>JAX-RS REST</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.cem.plc.service</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JAX-RS REST</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
asked Oct 2, 2013 at 18:20
8
You might be doing a PUT call for GET operation
Please check once
answered Aug 27, 2020 at 17:59
1
In above code variable «ver» is assign to null, print «ver» before returning and see the value. As this «ver» having null service is send status as «204 No Content».
And about status code «405 — Method Not Allowed» will get this status code when rest controller or service only supporting GET method but from client side your trying with POST with valid uri request, during such scenario get status as «405 — Method Not Allowed»
answered Jun 27, 2019 at 4:58
GirishGirish
1073 silver badges10 bronze badges
@Produces({"text/plain","application/xml","application/json"})
change this to
@Produces("text/plain")
and try,
shA.t
16.4k5 gold badges53 silver badges111 bronze badges
answered Dec 24, 2013 at 13:13
3
I also had this problem and was able to solve it by enabling CORS support on the server. In my case it was an Azure server and it was easy: Enable CORS on Azure
So check for your server how it works and enable CORS. I didn’t even need a browser plugin or proxy
answered Jan 21, 2017 at 20:29
seawave_23seawave_23
1,1042 gold badges12 silver badges22 bronze badges
Add
@Produces({"image/jpeg,image/png"})
to
@POST
@Path("/pdf")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces({"image/jpeg,image/png"})
//@Produces("text/plain")
public Response uploadPdfFile(@FormDataParam("file") InputStream fileInputStream,@FormDataParam("file") FormDataContentDisposition fileMetaData) throws Exception {
...
}
bluish
25.7k27 gold badges119 silver badges177 bronze badges
answered Sep 1, 2016 at 15:48
GeneGene
10.6k1 gold badge65 silver badges57 bronze badges
I had the same issue. In my case the Url had portions of it missing
For example :
http://localhost:8080/root/path/action
Instead I had something like
http://localhost:8080/root/action
Take away is check if the URL is correct. In my case I corrected my URL and the issue was resolved.
answered Jun 2, 2022 at 6:47
GayathriGayathri
551 silver badge10 bronze badges
When I got 405 when making a rest call, I did all research and none worked for me. Finally I realized I did not put the right version of code in tomcat. Once the code with the method is in place, the rest call worked. Just want to put here FYI.
Please check your version of code first!!!!
answered May 26, 2022 at 18:49
JanetJanet
7349 silver badges13 bronze badges
Jun 8, 2022 10:44:17 AM |
405 Method Not Allowed: What It Is and How to Fix It
An overview of what a 405 Method Not Allowed response is, including troubleshooting tips to help you resolve this error in your own application.
The 405 Method Not Allowed is an HTTP response status code indicating that the server received and recognized the specified request HTTP method, but the server rejected that particular method for the requested resource. This code response confirms that the requested resource is valid and exists, but the client has used an unacceptable HTTP method during the request.
Like most HTTP response codes — especially for those that indicate an error — it can be challenging to find the cause of a 405 Method Not Allowed response.
In this article, we’ll examine the 405 Method Not Allowed in more detail. We’ll look at what might cause this message, along with a handful of tips for diagnosing and debugging the appearance of this error within your application. We’ll also examine popular content management systems (CMSs) for potential problem areas that could cause an unexpected 405 Method Not Allowed.
Server- or Client-Side?
All HTTP response status codes in the 4xx category are client error responses. This category contrasts with 5xx classification errors, such as the 503 Service Unavailable Error. These are server error responses. That said, the appearance of a 4xx error doesn’t necessarily mean the issue is on the client-side, where the “client” is the web browser or device being used to access the application.
If you’re trying to diagnose an issue within your application, you can ignore most client-side code and components, such as HTML, cascading style sheets (CSS), client-side JavaScript, etc. This doesn’t apply solely to websites, either. Standard web applications power many smartphone apps that implement a modern-looking user interface.
On the other hand, this doesn’t entirely rule out the server as the actual cause of a 405 error. In some cases, the server may be mishandling requests. This could result in 405 code responses and other problematic traffic routing issues. We’ll explore some of these scenarios (and potential solutions) below. Be aware that, even though the 405 Method Not Allowed is considered a client error response, it doesn’t inherently mean we can rule out the client or the server as the culprit.
Start With a Thorough Application Backup
It is critical that you perform a complete backup of your application before attempting any fixes to the system.
Even better, create a complete copy of the application onto a secondary staging server that isn’t active. This will give you a clean testing ground to test all potential fixes without threatening your live application.
Diagnosing a 405 Method Not Allowed
As discussed in the introduction, a 405 Method Not Allowed indicates that the user agent (the web browser, in most cases) has requested a valid resource using an invalid HTTP method.
This could happen in a few different circumstances:
- The user agent accidentally sent an incorrect HTTP method
- The server is expecting only a handful of valid HTTP methods for the requested resource
Currently, there are nine possible HTTP methods, though some of them are far more prevalent than others. For example, the GET method handles most requests made on the Internet to retrieve data (i.e. “get” a page or resource). The POST method is the second-most common, and it’s typically used to send data to the server (such as login credentials).
Since each possible HTTP method has its own intended uses, it often doesn’t make sense for a server to accept requests using specific methods for particular resources. For example, a resource might exist at the URL https://airbrake.io/users/create, where the server creates a new user when valid credentials are sent via a POST HTTP method request. Therefore, it makes no sense for the server to accept a GET request at that resource/URL, so it may respond with a 405 Method Not Allowed code.
Troubleshooting on the Client-Side
Since the 405 response is a client error response code, it’s best to start troubleshooting any potential client-side issues. Here are a handful of tips to try on the browser or device giving you problems.
Check the Requested URL
The most common cause of a 405 Method Not Allowed is simply inputting an incorrect URL. As discussed before, many web servers will disallow access to improper URLs.
This could be anything from trying to access a file directory via a URL to gaining access to a private page meant for other users. Double-check the exact URL returning the 405 Method Not Allowed error.
Debugging Common Platforms
If you’re running common software packages on the server responding with the 405 Method Not Allowed, you may want to look into the stability and functionality of those platforms.
The most common content management systems (CMSs) — like WordPress, Joomla!, and Drupal — are typically well-tested. Once you start making modifications to the underlying extensions or PHP code, it’s easy to cause unforeseen issues resulting in a 405 error.
Troubleshoot some of these popular software platforms using the tips below.
Rollback Recent Upgrades
Suppose you recently updated the content management system before the 405 Method Not Allowed appeared. You may want to consider rolling back to the previous version you had installed when things were working fine.
Similarly, any extensions or modules you may have recently upgraded can also cause server-side issues, so reverting to previous versions may also help.
Simply Google “downgrade [PLATFORM_NAME] for assistance with this task.” In some cases, however, certain CMSs don’t provide a version downgrade capability, which indicates that they consider the base application and each new version released to be stable and bug-free.
Uninstall New Extensions, Modules, or Plugins
New extensions, modules, and plugins within your CMS all serve the same purpose across every system: improving the capabilities and features of the platform beyond what it’s typically capable of out of the box.
A word of caution: such extensions can take complete control of the system and make virtually any changes. As such, it may be wise to uninstall any new extensions if you suddenly see a 405 error.
Check for Unexpected Database Changes
It’s worth noting that, even if you uninstall an extension through the CMS dashboard, this doesn’t guarantee that changes made by the extension will fully revert. This is particularly true for many WordPress extensions. Some of these extensions are given carte blanche within the application, including full access rights to the database.
For example, some extensions modify database records that don’t “belong” to the extension itself but are instead created and managed by other extensions (or even the base CMS itself). The extension may not know how to revert alterations to database records, so it will ignore such things during uninstallation.
Your best course of action is to open the database and manually look through records that the extension modified.
Troubleshooting on the Server-Side
If you aren’t running a CMS application — or even if you are, but you’re confident the 405 Method Not Allowed error isn’t related to that — here are some additional tips to help you troubleshoot what might be causing the issue on the server-side of things.
Confirm Your Server Configuration
Your application is likely running on a server using one of these three popular webserver software: Apache, nginx, or Cloudflare. At the time of publication, these web servers make up over 86% of the world’s web server software! Check your configuration files for your web server software for unintentional redirect or request handling instructions.
Apache
To determine which web server your application uses, look for a key file. If your web server is Apache, look for an .htaccess file within the root directory of your website file system.
For example, if your application is on a shared host, you’ll likely have a username associated with the hosting account. You can find the application root directory at the path of /home/<username>/public_html/, so the .htaccess file would be at /home/<username>/public_html/.htaccess.
Once you’ve located the .htaccess file, open it in a text editor. Look for lines that use RewriteXXX directives, which are part of the mod rewrite module in Apache. Covering exactly how these rules work is well beyond the scope of this article. However, the basic concept is that a RewriteCond directive defines a text-based pattern that is matched against entered URLs. Suppose a visitor requests a matching URL to the site. In that case, the RewriteRule directive that follows one or more RewriteCond directives is used to perform the actual redirection of the request to the appropriate URL.
For example, here is a simple RewriteRule that matches all incoming GET requests to https://airbrake.io/users/create and responds with a 405 Method Not Allowed error code:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/users/create/?.*$
RewriteCond %{REQUEST_METHOD} =GET
RewriteRule ^(.*)$ https://airbrake.io/users/new$1 [R=405,L]
Notice the R=405 flag at the end of the RewriteRule, which explicitly states that the response code should be 405. This indicates to user agents that the resource exists, but the provided HTTP method is not allowed. If you find any strange RewriteCond or RewriteRuledirectives in the .htaccess file that doesn’t belong, try temporarily commenting them out (using the # character prefix) and restarting your web server to see if this resolves the issue.
nginx
On the other hand, if your server is running on nginx, you’ll need to look for a completely different configuration file. By default this file is named nginx.conf. It’s located in one of a few common directories: /usr/local/nginx/conf, /etc/nginx, or /usr/local/etc/nginx.
Once located, open nginx.conf in a text editor and look for directives that are using the 405 response code flag. For example, here is a simple block directive (i.e. a named set of directives) that configures a virtual server for airbrake.io and ensures that a POST request to https://airbrake.io/users/create fails and is responded with a 405 response code:
server {
listen 80;
listen 443 ssl;
server_name airbrake.io;
location /users/create {
if ($request_method = POST) {
return 405 https://airbrake.io/users/create$request_uri;
}
}
}
Look through your nginx.conf file for any abnormal directives or lines that include the 405 flag. Comment out any abnormalities. Once that’s done, restart the server and see if the issue is resolved.
Configuration options for each different type of web server can vary dramatically. We’ll just list a few popular ones to give you some resources to look through:
- Apache
- Nginx
- Cloudflare
- IIS
- Node.js
- Apache Tomcat
Look Through the Logs
Nearly every web application will keep some form of server-side logs. Application logs are typically the history of what the application did, such as pages requested, connected servers, database results, etc.
Server logs are related to the actual hardware running the application. Logs will often provide details about the health and status of all connected services or the server itself.
Google “logs [PLATFORM_NAME]” if you’re using a CMS, or “logs [PROGRAMMING_LANGUAGE]” and “logs [OPERATING_SYSTEM]” if you’re running a custom application to get more information on finding the logs in question.
Debug Your Application Code or Scripts
If all else fails, it may be a problem in some custom code within your application. Manually debug your application and parse through application and server logs to diagnose where the issue may be coming from. Or, you can see the error in a manner of seconds using an error monitoring tool.
Airbrake’s error and performance monitoring software provides real-time error monitoring and automatic exception reporting for all development projects. In addition to this, Airbrake integrates with all popular languages and frameworks. Plus, Airbrake makes it easy to customize exception parameters, so you only gather the errors that matter.
See why so many of the world’s best engineering teams use Airbrake to revolutionize their exception handling practices and create your free dev account today.
Note: We published this post in January 2018 and recently updated it in June 2022.