405 Method Not Allowed: So lösen Sie den Fehler
Webserver informieren Clients wie beispielsweise Internetbrowser mithilfe von HTTP-Statuscodes über den Bearbeitungsstand der gestellten Anfrage. So gibt es verschiedene Codes, um den Erfolg oder den Misserfolg eines Requests zu bestätigen – darunter auch sehr spezifische Meldungen. Während einige dieser Benachrichtigungen bei der täglichen Tour durch das World Wide Web vergleichsweise häufig auftreten, zählt der Error 405 (Method not Allowed) zu den seltener gemeldeten Fehlern. Was genau zu eben jener Fehlermeldung führt und warum die Problemlösung Sache des Website-Betreibers ist, erfahren Sie in diesem Artikel.
- Inklusive Wildcard-SSL-Zertifikat
- Inklusive Domain Lock
- Inklusive 2 GB E-Mail-Postfach
Was steckt hinter dem 405-HTTP-Fehler?
Im Hypertext Transfer Protocol (kurz: HTTP) sind Methoden definiert, die mögliche Aktionen bezeichnen, die sich auf dem kontaktierten Webserver ausführen lassen. Dazu gehören beispielsweise die folgenden Methoden:
- GET: Abrufen der Informationen, die mit einer bestimmten URL-Ressource verbunden sind
- HEAD: Abrufen der Header-Informationen, die mit einer URL-Ressource verknüpft sind
- POST: Senden von Daten an den Webserver – zum Beispiel Formulardaten
- PUT: Ersetzen der Daten für eine bestimmte URL durch die neuen, vom Client übermittelten Daten
- DELETE: Löschen der Daten, die hinter der jeweiligen URL stecken
Jeden Webserver kann der Administrator so konfigurieren, dass dieser die einzelnen Methoden entweder erlaubt oder nicht erlaubt. Gibt es beispielsweise keinen interaktiven Content auf der Website, ist es nur logisch, dass die POST-Methode nicht erlaubt ist, da der Benutzer sowieso keine Möglichkeit hat, eigene Daten einzugeben und an den Webserver zu senden. Enthält die Seite hingegen ein Formular für Nutzereingaben, sollte der Server die POST-Methode auch zulassen. Andernfalls käme es zu der erwähnten Fehlermeldung mit dem Statuscode 405, die den Browser und seinen User darüber informiert, dass die angewandte Methode nicht erlaubt ist (engl. Method not Allowed).
Der genaue Wortlaut der 405-HTTP-Nachricht variiert dabei von Server zu Server. Bekannte Formulierungen sind zum Beispiel die folgenden:
- 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
Wann tritt der 405-Error auf?
Eingangs wurde bereits angedeutet, dass der 405-Error ein Fehler ist, der ausschließlich auf ein serverseitiges Problem zurückzuführen ist. Da Statuscode 405 aber technisch gesehen zu den Client-Fehlermeldungen (Codes mit dem Muster 4xx) zählt, scheint dies keinen Sinn zu ergeben. Der Widerspruch ist allerdings schnell aufgelöst: Leiten Sie als Browsernutzer eine Anfrage mit einer HTTP-Methode an den Webserver weiter, die dieser aufgrund seiner Konfiguration nicht erlaubt, liegt der Fehler aus Sicht des Servers auf Seiten des Clients – der in diesem Fall schlichtweg eine falsche Anfrage gestellt hat. Dass Sie lediglich auf das Angebot der Website eingehen und beispielsweise ein Kontaktformular ausfüllen wollen, weiß der Server bei der Verarbeitung der Anfrage nicht.
Insbesondere drei Szenarien können zur „Method Not Allowed“-Fehlermeldung führen:
- Das Verbot der entsprechenden HTTP-Methode geht auf eine Fehlkonfiguration von Webserver bzw. Softwarekomponenten zurück, die die jeweilige Aktion für die gewünschte URL-Ressource ausführen sollen.
- Das Verbot der HTTP-Methode ist vom Webmaster – in den meisten Fällen aus Sicherheitsgründen – so vorgesehen. Der Fehler liegt in einer URL-Ressource des betreffenden Webprojekts, die aufgrund ihrer Programmierung nach der nicht zugelassenen Methode verlangt.
- Die HTTP-Methode wird vom Hosting-Provider des Website-Betreibers nicht zugelassen. Dies kann vor allem bei der POST-Methode vorkommen, die für die Eingabe von Daten benötigt wird und bei einigen Anbietern aus Sicherheitsgründen beim Zugriff auf HTML-Dokumente blockiert ist.
HTTP-Error 405: So lösen Sie das Problem
Wenn Sie auf ein Webprojekt stoßen, das 405-Not-Allowed-Nachrichten ausspielt, können Sie selbst das Problem kaum lösen. Während bei anderen HTTP-Meldungen Tricks wie ein Seiten-Refresh, der Neustart des Routers oder eine Überprüfung der Proxy-Einstellungen den Fehler meist beheben können, sind derartige Maßnahmen bei Fehler 405 wirkungslos. In jedem Fall ist es jedoch sinnvoll, den zuständigen Webmaster bzw. Website-Administrator zu kontaktieren, um ihn auf das Problem aufmerksam zu machen oder genauere Informationen zu den Ursachen zu erhalten.
Sind Sie hingegen selbst für eine Seite verantwortlich, die Besuchern den 405-HTTP-Code anzeigt, sieht die Sachlage natürlich gänzlich anders aus: Abhängig von der Ursache für die Fehlermeldung haben Sie verschiedene Möglichkeiten, das Problem zu lösen. Um Ihre User nicht zu verärgern und um Abstrafungen durch die Suchmaschinen zu vermeiden, sollten Sie den Fehler möglichst frühzeitig beheben.
Lösung 1: HTTP-Methode freischalten
Wenn Sie sich über die Ursache der „405 Method Not Allowed“-Meldung nicht im Klaren sind, sollte Ihr erster Blick immer den Einstellungen der Softwarekomponenten gelten, die sich um die Beantwortung der HTTP-Requests kümmern. Typischerweise handelt es sich dabei um den Webserver, doch auch ein vorgeschalteter Proxy oder HTTP-Handler (in ASP.NET-Webanwendungen) kann für das Problem verantwortlich zu sein, wenn die Methode schlichtweg nicht freigegeben ist. Da sich die die verschiedenen Anwendungen hinsichtlich der Konfigurationsweise voneinander unterscheiden, müssen Sie sich zunächst informieren, wie die Aktivierung bzw. Deaktivierung der HTTP-Methoden bei der jeweiligen Software funktioniert. Bei Apache-Webservern lassen sich die erlaubten Methoden beispielsweise mithilfe des Moduls mod_allowmethods bestimmen. Das lässt sich über die Direktive AllowMethods innerhalb von <Location>-Containern steuern, die dazu benötigt werden, Einstellungen für eine URL bzw. mehrere gewünschte URLs festzulegen. Eine Konfiguration, die den Zugriff auf die Ressource sowie die clientseitige Dateneingabe ermöglicht, ließe sich durch folgenden Eintrag realisieren:
<Location "/">
AllowMethods GET POST OPTIONS
</Location>
Bei älteren Apache-Versionen wurden zugelassene HTTP-Methoden über die Direktiven <Limit> und <LimitExcept> definiert.
Lösung 2: Quellcode bereinigen
Wenn Sie eine HTTP-Methode bewusst gesperrt haben, um beispielsweise die Sicherheit der Website zu gewährleisten (häufige Verfahrensweise bei der PUT-Methode), der Client aber dennoch eine solche Anfrage zum Abruf der URL-Ressourcen startet, liegt dies häufig an einer fehlerhaften Website-Programmierung. Die aufgerufene Seite bzw. das angeforderte Element ist also fälschlicherweise mit der Methode verknüpft, weshalb der Error 405 die logische Konsequenz ist. Die Lösung besteht darin, den problematischen Code im betreffenden HTML-Dokument ausfindig zu machen und die bisher eingetragene durch die richtige Request-Methode zu ersetzen. Sind Server-Konfiguration und Quellcode wieder aufeinander abgestimmt, wird mit großer Wahrscheinlichkeit auch der 405-HTTP-Fehler aus den Browserfenstern Ihrer Besucher verschwinden.
Lösung 3: Sicherheitssperre des Providers umgehen
Wie bereits erwähnt, kann der 405-Error auch den Hintergrund haben, dass die entsprechenden HTTP-Methoden für bestimmte MIME-Types – wie zum Beispiel ein HTML-Dokument – aus Sicherheitsgründen vom Hosting-Provider deaktiviert wurden. In diesem Fall können Sie natürlich den Kontakt zu Ihrem Anbieter suchen und um die Freigabe bitten – ist dies jedoch nicht möglich, gibt es Tricks, um die Methode trotzdem für Ihr Webprojekt zu nutzen.
So können Sie die Website mit einem anderen MIME-Type ausliefern, für den die gewünschte Methode verfügbar ist, um die Sperre zu umgehen. POST wird zum Beispiel in erster Linie für HTML-Seiten deaktiviert, während die Methode in PHP-Dokumenten funktioniert. Ändern Sie also die Extension (Endung) und damit auch den Typ des beispielhaften Web-Dokuments index.html auf index.php, haben Sie gute Chancen, die „405 Method Not Allowed“-Problematik zu lösen.
Ein zweiter Trick besteht darin, die Webseite, die zum HTTP-Fehler führt, als Inhalt der angezeigten 405-Fehlerseite zu implementieren. Speichern Sie die betreffende Seite zu diesem Zweck einfach in einem separaten Verzeichnis ab und definieren diese in der Konfigurationsdatei als offizielle 405-Fehlermeldung:
ErrorDocument 405 /PfadZurDatei/example.html
Die Lösung hat allerdings den Nachteil, dass alle erfolgreichen Seitenaufrufe für diese Seite als Fehler gewertet und gezählt werden, was die statistische Auswertung erschwert.