{"id":29451,"date":"2026-02-17T11:05:00","date_gmt":"2026-02-17T10:05:00","guid":{"rendered":"https:\/\/contabo.com\/blog\/so-behebst-du-den-fehler-405-method-not-allowed\/"},"modified":"2026-03-26T12:40:40","modified_gmt":"2026-03-26T11:40:40","slug":"so-behebst-du-den-fehler-405-method-not-allowed","status":"publish","type":"post","link":"https:\/\/contabo.com\/blog\/de\/so-behebst-du-den-fehler-405-method-not-allowed\/","title":{"rendered":"So behebst du den Fehler 405 Method Not Allowed"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"630\" src=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_how2-fix-the-405-method-not-allowed-error.webp\" alt=\"So behebst du den Fehler 405 Method Not Allowed (Titelbild)\" class=\"wp-image-27980\" srcset=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_how2-fix-the-405-method-not-allowed-error.webp 1200w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_how2-fix-the-405-method-not-allowed-error-600x315.webp 600w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_how2-fix-the-405-method-not-allowed-error-768x403.webp 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>Du klickst in einem Formular auf &#8222;Absenden&#8220;. Die Seite wirft einen Fehler 405 Method Not Allowed aus. Kein Stack-Trace, kein n\u00fctzlicher Hinweis, nur eine glatte Absage von deinem Server. Willkommen bei einem der nervigeren HTTP-Fehlercodes.<\/p>\n\n\n\n<p>Der HTTP-Statuscode 405 sagt dir eines ganz genau: Der Server hat die Ressource gefunden, deine Anfrage verstanden und die von dir verwendete HTTP-Methode abgelehnt. Die Seite ist da. Der Server macht einfach nicht das, was du von ihm verlangst. Das hier ist kein 404. Die URL ist korrekt. Irgendetwas in der Serverkonfiguration, deinem Code oder einem frisch installierten Plugin hat entschieden, dass eine v\u00f6llig valide POST- oder PUT-Anfrage wie ein unerw\u00fcnschter Gast behandelt wird.<\/p>\n\n\n\n<p>Hier kommt eine \u00dcbersicht \u00fcber alle Ursachen, die mir bisher in der Produktion begegnet sind, plus 11 L\u00f6sungen \u2013 sortiert von &#8222;dauert 30 Sekunden&#8220; bis hin zu &#8222;alles aus dem Backup wiederherstellen&#8220;. Egal ob du als Entwickler diesen Fehler bei einer API kriegst oder als Website-Besitzer vor einem kaputten Kontaktformular stehst, Die L\u00f6sung liegt fast immer an denselben paar Stellen.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Fehlercode<\/strong><\/td><td>405 Method Not Allowed<\/td><\/tr><tr><td><strong>Fehlerart<\/strong><\/td><td>Client-seitiger Fehler (meistens vom Server verursacht)<\/td><\/tr><tr><td><strong>H\u00e4ufige Varianten<\/strong><\/td><td>HTTP Error 405, HTTP 405, 405 Not Allowed, Method Not Allowed, HTTP Error 405 &#8211; Method Not Allowed<\/td><\/tr><tr><td><strong>Typische Ursachen<\/strong><\/td><td>Falsche HTTP-Methode, Server-Fehlkonfiguration, API-Einschr\u00e4nkungen, WAF-Regeln, Plugin-Konflikte<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-was-den-405-fehler-verursacht\">Was den 405-Fehler verursacht<\/h2>\n\n\n\n<p>Der 405-Fehler tritt auf, wenn die HTTP-Request-Methode nicht mit dem \u00fcbereinstimmt, was die Ressource akzeptiert. Das Konzept ist simpel; herauszufinden, auf welcher Ebene der Fehler liegt, ist der schwierige Teil.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-nicht-unterstutzte-http-methode\">Nicht unterst\u00fctzte HTTP-Methode<\/h3>\n\n\n\n<p>Jede Web-Ressource ist darauf eingestellt, bestimmte HTTP-Methoden zu akzeptieren. GET ruft Daten ab. POST \u00fcbermittelt Daten. PUT aktualisiert. DELETE entfernt. Du sendest einen DELETE-Request an eine statische HTML-Seite, die nur GET verarbeitet? Der Server gibt einen 405 zur\u00fcck. Er hat die Seite gefunden. Er weigert sich einfach, diese spezielle Aktion auszuf\u00fchren. Das ist die h\u00e4ufigste Ursache und bedeutet meistens, dass dein Code, deine Form-Action oder dein API-Call den falschen Endpunkt ansteuert.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-falsche-serverkonfiguration\">Falsche Serverkonfiguration<\/h3>\n\n\n\n<p>Apache nutzt .htaccess-Dateien, NGINX nutzt die nginx.conf. Eine einzige falsch gesetzte Direktive in einer von beiden kann eine komplette HTTP-Methode im gesamten Verzeichnisbaum ohne jede Warnung blockieren. Ich habe mal einen 405 auf eine Limit-Direktive zur\u00fcckverfolgt, die jemand ohne Plan aus einem Security-Blog kopiert hatte. Sie blockierte POST f\u00fcr jede HTML-Datei im Root-Verzeichnis. Kontaktformular, Checkout-Seite, Login-Screen: alles kaputt. Die L\u00f6sung war das L\u00f6schen von zwei Zeilen. Diese zwei Zeilen zu finden, hat mich fast einen ganzen Nachmittag gekostet, weil sich niemand mehr daran erinnern konnte, sie hinzugef\u00fcgt zu haben.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-api-einschrankungen\">API-Einschr\u00e4nkungen<\/h3>\n\n\n\n<p>APIs sind sehr streng, was die akzeptierten HTTP-Request-Methoden angeht. Ein Endpunkt, der f\u00fcr POST gebaut wurde, wird nicht auf PUT reagieren, nur weil dein Client-Code einen sendet. Wenn du 405-Fehler nur bei API-Calls siehst, schau in die API-Dokumentation und checke, ob du die richtige Methode f\u00fcr den jeweiligen Endpunkt nutzt. Das passiert oft bei Drittanbieter-APIs, die verschiedene Versionen nutzen und alte Methoden abschalten.<\/p>\n\n\n\n<p>REST-APIs sind hier meistens die Verd\u00e4chtigen. Ein GET-Request an einen Endpunkt, der nur POST unterst\u00fctzt, wird jedes Mal einen 405 liefern. Dasselbe gilt f\u00fcr PATCH vs. PUT: Manche APIs behandeln sie gleich, andere nicht. Lies die Docs, checke den Allow-Header in der 405-Antwort (da steht drin, welche Methoden akzeptiert werden) und passe deinen Request an.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-regeln-der-web-application-firewall\">Regeln der Web Application Firewall<\/h3>\n\n\n\n<p>Eine Web Application Firewall kann deine Serverkonfiguration komplett \u00fcberschreiben. WAF-Regeln blockieren oft aus Sicherheitsgr\u00fcnden HTTP-Methoden wie PUT, DELETE oder PATCH auf bestimmten Pfaden. Der \u00c4rger geht los, wenn diese Regeln zu weit gefasst sind. Eine Regel, die DELETE f\u00fcr deine komplette Domain sperrt, klingt vern\u00fcnftig \u2013 bis dein Admin-Dashboard pl\u00f6tzlich DELETE braucht, um Datens\u00e4tze zu l\u00f6schen.<\/p>\n\n\n\n<p>Wenn du vor Kurzem deine WAF aktiviert oder aktualisiert hast und seitdem 405-Fehler auftauchen, schraub die Methoden-Blockier-Regeln zur\u00fcck und teste es noch mal. Schau im Dashboard deines WAF-Anbieters in die Logs, um zu sehen, welche Regeln genau ausgel\u00f6st haben. \u00dcbertriebene Security schafft oft eigene Probleme. Ein 405-Fehler, der legitime Funktionen blockiert, ist schlimmer als der theoretische Angriff, den er eigentlich verhindern soll.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-plugin-und-theme-konflikte\">Plugin- und Theme-Konflikte<\/h3>\n\n\n\n<p>WordPress-Seiten sind daf\u00fcr besonders anf\u00e4llig. Du installierst ein neues Plugin, es registriert eigene Rewrite-Rules oder REST-API-Routen, und diese kollidieren dann mit der .htaccess. Schon wirft deine Seite bei Formular-Submissions 405-Fehler aus. Das Plugin an sich ist okay, aber das Zusammenspiel mit deiner Konfiguration verursacht den Crash. Das Gleiche gilt f\u00fcr Themes mit Sonderfunktionen oder mitgelieferten Plugins.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-verbliebene-datenbank-anderungen\">Verbliebene Datenbank-\u00c4nderungen<\/h3>\n\n\n\n<p>Manche Erweiterungen \u00e4ndern bei der Installation Datenbanktabellen und r\u00e4umen nach der Deinstallation nicht richtig auf. Verwaiste Eintr\u00e4ge in Options-Tabellen oder Registrierungen von Custom Post Types k\u00f6nnen die Routing-Logik deiner App verwirren. Die App sendet dann eventuell Requests mit der falschen HTTP-Methode, weil ihr interner Status nicht mehr zum tats\u00e4chlichen Server-Setup passt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-so-behebst-du-den-405-fehler\">So behebst du den 405-Fehler<\/h2>\n\n\n\n<p>Geh diese Punkte der Reihe nach durch. Die ersten Punkte sind schnelle Plausibilit\u00e4tspr\u00fcfungen, die die meisten F\u00e4lle abfangen. Die sp\u00e4teren Schritte erfordern tieferes Grabben in den Server-Internals und im Code.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-1-uberprufe-ob-die-url-korrekt-ist\">1. \u00dcberpr\u00fcfe, ob die URL korrekt ist<\/h3>\n\n\n\n<p>Fang mit dem peinlich Offensichtlichen an. Tippfehler in der URL-Konfiguration verursachen \u00f6fter 405-Fehler, als man zugeben m\u00f6chte.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Falsch geschriebene Pfade (\/usres statt \/users)<\/li>\n\n\n\n<li>Gro\u00df- und Kleinschreibung (manche Server behandeln \/Page und \/page als unterschiedliche URLs)<\/li>\n\n\n\n<li>Schr\u00e4gstriche am Ende, die stillschweigend zu einem anderen Handler umleiten<\/li>\n\n\n\n<li>Eine Route, die auf einen Handler zeigt, der die genutzte HTTP-Methode gar nicht unterst\u00fctzt<\/li>\n<\/ul>\n\n\n\n<p>\u00d6ffne die Entwicklertools deines Browsers, geh zum Tab Netzwerk und schau dir den fehlgeschlagenen Request an. Checke die Methode (GET, POST etc.) und die exakte URL, die aufgerufen wird. Vergleiche das mit dem, was deine Anwendung eigentlich erwartet. Wenn es nicht zusammenpasst, korrigiere die URL oder den Handler. Wenn alles stimmt, mach mit dem n\u00e4chsten Punkt weiter.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-2-mach-kurzliche-updates-ruckgangig\">2. Mach k\u00fcrzliche Updates r\u00fcckg\u00e4ngig<\/h3>\n\n\n\n<p>Wenn der 405 direkt nach einem Update auftauchte, verbring nicht eine Stunde mit Debuggen. Setz es erst mal zur\u00fcck. Du kannst der Sache sp\u00e4ter auf den Grund gehen, w\u00e4hrend die Seite wieder l\u00e4uft.<\/p>\n\n\n\n<p>Mach ein Backup deiner Seite, bevor du den Rollback startest. Mach dann die letzte \u00c4nderung r\u00fcckg\u00e4ngig. Bei WordPress erledigt ein Plugin wie &#8222;WP Rollback&#8220; das f\u00fcr den Core, Themes und Plugins. Auf anderen Plattformen nutzt du deine Deployment-Pipeline oder Versionskontrolle, um den alten Stand wiederherzustellen. Wenn der Fehler nach dem Revert weg ist, hast du das Problem isoliert. Warte entweder auf einen Patch vom Entwickler, schreib einen Bug-Report oder such dir eine Alternative.<\/p>\n\n\n\n<p>Eine Gewohnheit, die solche Vorf\u00e4lle verhindert: Teste jedes Update in einer Staging-Umgebung, bevor du es in die Produktion pushst.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-3-checke-datenbank-anderungen\">3. Checke Datenbank-\u00c4nderungen<\/h3>\n\n\n\n<p>Erweiterungen schreiben manchmal bei der Installation in deine Datenbank und r\u00e4umen beim L\u00f6schen nicht hinter sich auf. Diese verwaisten Eintr\u00e4ge k\u00f6nnen die Routing-Logik st\u00f6ren, sodass HTTP-Requests mit der falschen Methode gesendet werden.<\/p>\n\n\n\n<p>\u00d6ffne phpMyAdmin oder dein Datenbank-Tool, w\u00e4hle die Datenbank aus, geh zum SQL-Tab und f\u00fchre das aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT UNIX_TIMESTAMP(MAX(UPDATE_TIME)) AS last_update<br><br>FROM information_schema.tables<br><br>WHERE TABLE_SCHEMA = 'your_database_name'<br><br>GROUP BY TABLE_SCHEMA;<\/code><\/pre>\n\n\n\n<p>Wenn der Zeitstempel zum Start der 405-Fehler passt, untersuche die k\u00fcrzlich ge\u00e4nderten Tabellen nach Eintr\u00e4gen, die dort nicht hingeh\u00f6ren. Konzentriere dich auf Options-Tabellen, Routing-Tabellen und alles, was mit Plugins zu tun hat, die du neu installiert oder entfernt hast. Mach immer ein Backup deiner Datenbank, bevor du \u00c4nderungen vornimmst. Produktionsdaten ohne Sicherheitsnetz zu bearbeiten, f\u00fchrt meist zu gr\u00f6\u00dferen Problemen als denen, die du eigentlich l\u00f6sen wolltest.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-4-entferne-fehlerhafte-plugins-oder-themes\">4. Entferne fehlerhafte Plugins oder Themes<\/h3>\n\n\n\n<p>Bei CMS-basierten Seiten sind neu installierte Plugins oder Themes die h\u00e4ufigsten Ausl\u00f6ser f\u00fcr 405-Fehler. Der neue Code registriert entweder kollidierende Routen, \u00e4ndert die Serverkonfiguration oder beeinflusst, wie deine App HTTP-Requests verarbeitet.<\/p>\n\n\n\n<p>Geh in WordPress zum Admin-Bereich, \u00f6ffne die Plugins und deaktiviere alles, was du zuletzt installiert hast. Teste die Seite. Wenn der Fehler verschwindet, war dieses Plugin die Ursache. Wiederhole den Vorgang f\u00fcr die Themes unter Design, falls das Plugin nicht verantwortlich war.<\/p>\n\n\n\n<p>Du kommst nicht ins Admin-Panel? Geh per SSH oder FTP auf deinen Server und benenne den Plugin-Ordner in wp-content\/plugins\/ um. WordPress deaktiviert automatisch jedes Plugin, das es nicht finden kann. Gleicher Ansatz f\u00fcr Themes in wp-content\/themes\/. Versuche eine andere Erweiterung mit \u00e4hnlichen Funktionen zu nutzen, sobald du best\u00e4tigt hast, dass die alte den Konflikt verursacht hat.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-5-analysiere-serverseitige-protokolle-logs\">5. Analysiere serverseitige Protokolle (Logs)<\/h3>\n\n\n\n<p>Wenn schnelle L\u00f6sungen fehlschlagen, findest du in den Logs meistens die echte Antwort. Du musst zwei Typen \u00fcberpr\u00fcfen.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-server-logs\">Server-Logs<\/h4>\n\n\n\n<p>Apache und NGINX f\u00fchren Access-Logs (Zugriff) und Error-Logs (Fehler). Das Access-Log zeichnet jede Anfrage auf, inklusive HTTP-Methode, URL und dem Statuscode der Antwort. Das Error-Log erkl\u00e4rt, warum der Server die Anfrage abgelehnt hat. Zusammen erz\u00e4hlen diese beiden die ganze Geschichte.<\/p>\n\n\n\n<p>Apache-Logs liegen in <code>\/var\/log\/apache2\/<\/code> auf Debian\/Ubuntu oder <code>\/var\/log\/httpd\/<\/code> auf CentOS\/RHEL. NGINX speichert sie in <code>\/var\/log\/nginx\/<\/code>.<\/p>\n\n\n\n<p>Nutze tail <code>-f \/var\/log\/apache2\/error.log<\/code>, um das Error-Log in Echtzeit zu verfolgen. Triggere den 405-Fehler in deinem Browser und schau dir dann den neuesten Log-Eintrag an. Dort steht genau, welche Regel oder Direktive die Ablehnung verursacht hat.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-anwendungs-logs\">Anwendungs-Logs<\/h4>\n\n\n\n<p>Deine Web-App f\u00fchrt eigene Protokolle, getrennt vom Server. Diese enthalten Debug-Ausgaben, Exception-Traces und Audit-Logs, die zeigen, wie die App den Request intern verarbeitet hat. Wenn die Server-Logs sauber aussehen, aber der 405 trotzdem auftritt, erzeugt die Anwendung den Fehler selbst durch ihre eigene Routing-Logik.<\/p>\n\n\n\n<p>\u00dcberpr\u00fcfe das Log-Verzeichnis im Root-Ordner deiner Anwendung. Aktiviere in WordPress WP_DEBUG und WP_DEBUG_LOG in der wp-config.php, um Fehler auf Anwendungsebene in der wp-content\/debug.log zu speichern. Bei Laravel checkst du die storage\/logs\/laravel.log. Bei Django schaust du in den konfigurierten Logging-Handler. Das Anwendungs-Log k\u00f6nnte zeigen, dass ein Route-Mapping ge\u00e4ndert wurde oder eine Middleware den Request abblockt, bevor er den Controller erreicht.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-6-uberprufe-die-webserver-konfiguration\">6. \u00dcberpr\u00fcfe die Webserver-Konfiguration<\/h3>\n\n\n\n<p>Die hartn\u00e4ckigsten 405-Fehler verstecken sich in den Konfigurationsdateien deines Webservers. Hier zahlt sich genaues Hinsehen aus.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-apache-htaccess\">Apache (.htaccess)<\/h4>\n\n\n\n<p>Zwei Dinge in der .htaccess verursachen die meisten Apache-bezogenen 405-Fehler:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>mod_rewrite-Regeln <\/strong>, die den Traffic umleiten, ohne alle HTTP-Methoden beizubehalten. Eine RewriteRule f\u00fcr GET, die POST ignoriert, zerschie\u00dft jede Formular\u00fcbermittlung auf diesem Pfad.<\/li>\n\n\n\n<li><strong>Limit-Direktiven <\/strong>, die einschr\u00e4nken, welche Methoden eine Ressource akzeptiert. Das sind Sicherheitsma\u00dfnahmen, aber ein falsch konfiguriertes \u201eLimit\u201c kann legitime POST- oder PUT-Anfragen f\u00fcr ganze Verzeichnisse blockieren.<\/li>\n<\/ul>\n\n\n\n<p>Kommentiere verd\u00e4chtige Direktiven mit # aus und starte Apache neu zum Testen. Aktiviere sie nacheinander wieder, um das Problem zu isolieren.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-nginx-nginx-conf\">NGINX (nginx.conf)<\/h4>\n\n\n\n<p>Checke in NGINX folgende Punkte:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Location-Bl\u00f6cke <\/strong>, die bestimmte HTTP-Methoden implizit ausschlie\u00dfen. Wenn ein Location-Block nur GET verarbeitet, schlagen alle POST-Anfragen an diesen Pfad fehl.<\/li>\n\n\n\n<li><strong>error_page-Direktiven <\/strong>, die 405-Fehler auf eine statische Seite umleiten, welche selbst die urspr\u00fcngliche Methode nicht akzeptiert \u2013 das erzeugt eine Endlos-Schleife.<\/li>\n<\/ul>\n\n\n\n<p>Validiere deine Konfiguration nach dem Bearbeiten mit <code>nginx -t<\/code>, bevor du neu l\u00e4dst. Ein Syntaxfehler in der nginx.conf kann deine komplette Seite offline nehmen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-7-debugge-deinen-code-und-deine-skripte\">7. Debugge deinen Code und deine Skripte<\/h3>\n\n\n\n<p>Manchmal liegt das Problem nicht in der Server-Konfiguration. Es liegt in deinem Anwendungscode.<\/p>\n\n\n\n<p>H\u00e4ufige \u00dcbelt\u00e4ter:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Das Action-Attribut eines Formulars verweist auf einen Endpunkt, der nur GET akzeptiert, aber das Formular nutzt method=&#8220;POST&#8220;<\/li>\n\n\n\n<li>Ein JavaScript fetch() oder XMLHttpRequest-Aufruf sendet die falsche HTTP-Methode f\u00fcr den Ziel-API-Endpunkt<\/li>\n\n\n\n<li>Framework-Middleware f\u00e4ngt bestimmte Methoden heimlich ab und lehnt sie ab, bevor dein Route-Handler sie \u00fcberhaupt sieht<\/li>\n<\/ul>\n\n\n\n<p>Klone deine Seite in eine lokale Entwicklungsumgebung und reproduziere den Fehler dort. Deaktiviere in WordPress alle Plugins und wechsle zu einem Standard-Theme (wie Twenty Twenty-Four), um das Problem zu isolieren. Wenn der 405 verschwindet, aktiviere die Plugins nacheinander wieder. Nutze den Netzwerk-Tab deines Browsers, um den genauen Request zu inspizieren: Methode, URL, Header und den Statuscode der Antwort.<\/p>\n\n\n\n<p>Schreibe Unit-Tests, die jeden Endpunkt mit jeder HTTP-Methode testen, die er akzeptieren sollte. Automatisierte Tests finden solche Unstimmigkeiten schon w\u00e4hrend der Entwicklung und nicht erst in der Produktion.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-8-stelle-deine-website-aus-einem-backup-wieder-her\">8. Stelle deine Website aus einem Backup wieder her<\/h3>\n\n\n\n<p>Wenn du alles andere probiert hast, stelle die komplette Seite aus einem Backup wieder her. Das ist die nukleare Option \u2013 sie funktioniert, weil sie alle Variablen auf einmal eliminiert.<\/p>\n\n\n\n<p>W\u00e4hle das aktuellste Backup von einem Zeitpunkt aus, bevor der 405-Fehler das erste Mal auftrat. Das setzt deine Dateien, Datenbank und Konfiguration auf einen bekannten, funktionierenden Stand zur\u00fcck. Du verlierst allerdings alle \u00c4nderungen, die nach diesem Backup-Zeitpunkt gemacht wurden. Das ist der Preis daf\u00fcr. Falls du keine aktuellen Backups hast, ist das die Lektion, die dich hoffentlich davon \u00fcberzeugt, sie ab jetzt zu automatisieren.<\/p>\n\n\n\n<p>Die meisten Hosting-Panels haben eine One-Click-Wiederherstellungsfunktion. Falls nicht, lade dein Datei-Backup manuell per FTP hoch und importiere die Datenbank \u00fcber phpMyAdmin. Teste nach dem Restore sofort die Seiten, die den 405 ausgegeben haben, um sicherzugehen, dass der Fehler weg ist. Finde dann heraus, was den Fehler verursacht hat, bevor du die \u00c4nderungen, die alles zerschossen haben, erneut anwendest. Blindes Wiederherstellen und anschlie\u00dfendes Wiederholen derselben \u00c4nderungen bringt dich nur wieder in denselben defekten Zustand zur\u00fcck.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-9-korrigiere-htaccess-rewrite-regeln\">9. Korrigiere .htaccess Rewrite-Regeln<\/h3>\n\n\n\n<p>Die .htaccess Rewrite-Regeln von Apache verdienen einen eigenen Abschnitt, da sie unverh\u00e4ltnism\u00e4\u00dfig viele 405-Fehler verursachen.<\/p>\n\n\n\n<p>\u00d6ffne die .htaccess per Dateimanager oder FTP. Suche nach Zeilen, die \u201eR=405\u201c enthalten. Das ist eine Rewrite-Regel, die explizit einen 405-Statuscode zur\u00fcckgibt. Kommentiere sie mit einem # am Zeilenanfang aus, speichere die Datei und leere deinen Browser-Cache.<\/p>\n\n\n\n<p>Wenn der 405 aufh\u00f6rt, hast du die Regel identifiziert. Bevor du sie endg\u00fcltig l\u00f6schst, finde heraus, warum sie \u00fcberhaupt hinzugef\u00fcgt wurde. Vielleicht hat sie jemand absichtlich aus Sicherheitsgr\u00fcnden dort platziert. Wenn sie eine Methode blockiert hat, die deine App braucht, entferne sie. Wenn sie gegen einen echten Angriffsvektor sch\u00fctzen sollte, finde einen gezielteren Weg f\u00fcr diese Einschr\u00e4nkung.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-10-korrigiere-die-dateiberechtigungen\">10. Korrigiere die Dateiberechtigungen<\/h3>\n\n\n\n<p>Falsche Dateiberechtigungen k\u00f6nnen auf unerwartete Weise 405-Fehler verursachen. Wenn der Webserver-Prozess nicht der rechtm\u00e4\u00dfige Besitzer deiner Dateien ist, kann er Skripte eventuell nicht ausf\u00fchren \u2013 und der daraus resultierende Fehler zeigt sich manchmal als 405 statt des erwarteten 403 Forbidden. Ich habe das oft nach Server-Migrationen erlebt, bei denen Dateien mit dem falschen Besitzer \u00fcbertragen wurden, oder nachdem jemand einen Bulk-chmod-Befehl \u00fcber das komplette Document-Root laufen lassen hat.<\/p>\n\n\n\n<p>Standardberechtigungen f\u00fcr die meisten Webserver:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verzeichnisse: <code>755<\/code><\/li>\n\n\n\n<li>Dateien: <code>644<\/code><\/li>\n\n\n\n<li>Besitzer: Der Webserver-Benutzer (<code>www-data<\/code> auf Debian\/Ubuntu, <code>apache <\/code>auf CentOS)<\/li>\n<\/ul>\n\n\n\n<p>Besitzrechte rekursiv korrigieren: <code>chown -R www-data:www-data \/var\/www\/yoursite<\/code><\/p>\n\n\n\n<p>Verzeichnisberechtigungen korrigieren: <code>find \/var\/www\/yoursite -type d -exec chmod 755 {} \\;<\/code><\/p>\n\n\n\n<p>Dateiberechtigungen korrigieren: <code>find \/var\/www\/yoursite -type f -exec chmod 644 {} \\;<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-11-uberprufe-die-dns-a-records\">11. \u00dcberpr\u00fcfe die DNS A-Records<\/h3>\n\n\n\n<p>Diese Ursache ist selten, aber wenn sonst nichts geholfen hat, checke dein DNS. Falsche A-Records k\u00f6nnen den Traffic an einen komplett falschen Server leiten \u2013 und dieser akzeptiert vielleicht die HTTP-Methoden deiner App nicht.<\/p>\n\n\n\n<p>Logge dich bei deinem Domain-Registrar oder im DNS-Panel ein und best\u00e4tige deine A-Records:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Typ: <\/strong> Muss A sein<\/li>\n\n\n\n<li><strong>Name: <\/strong>@ f\u00fcr die Root-Domain oder der Name der Subdomain<\/li>\n\n\n\n<li><strong>Zeigt auf: <\/strong>Die korrekte IP-Adresse deines eigentlichen Hosting-Servers<\/li>\n\n\n\n<li><strong>TTL: <\/strong>Typischerweise 14400 Sekunden (4 Stunden)<\/li>\n<\/ul>\n\n\n\n<p>Das ist besonders wichtig, wenn du k\u00fcrzlich den Server oder Hosting-Anbieter gewechselt oder DNS-Einstellungen aktualisiert hast. Die DNS-Propagation kann bis zu 48 Stunden dauern. Selbst korrekte \u00c4nderungen sind also vielleicht noch nicht \u00fcberall auf der Welt angekommen. Nutze ein Tool wie dig oder einen Online-DNS-Checker, um zu pr\u00fcfen, was die Resolver gerade sehen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-best-practices-fur-die-website-wartung\">Best Practices f\u00fcr die Website-Wartung<\/h2>\n\n\n\n<p>Den 405-Fehler einmal zu beheben, reicht nicht. Die eigentliche Aufgabe ist es, daf\u00fcr zu sorgen, dass er nicht wiederkommt. Die meisten dieser Fehler entstehen durch \u00c4nderungen: Updates, neue Plugins, Config-Edits oder Datenbank-Anpassungen. Ein paar Gewohnheiten helfen dir massiv dabei, deine Seite stabil zu halten.<\/p>\n\n\n\n<p>Checke deine Server-Logs w\u00f6chentlich. Nicht erst, wenn etwas kaputtgeht. W\u00f6chentlich. So bemerkst du Warnzeichen, ungew\u00f6hnliche 4xx-Spitzen, Warnungen zu veralteten Methoden oder fehlgeschlagene Requests, bevor sie zu sichtbaren Fehlern werden, die deine Besucher vergraulen.<\/p>\n\n\n\n<p>Update niemals die Produktion, ohne vorher im Staging zu testen. Diese eine simple Methode zur Fehlersuche verhindert die Mehrheit der 405-Fehler, die mir in der Praxis begegnet sind. Es dauert f\u00fcnf Minuten, eine Staging-Seite aufzusetzen, spart dir aber Stunden an Notfall-Fehlersuche am Samstagmorgen um 2 Uhr.<\/p>\n\n\n\n<p>Automatisiere deine Backups und teste sie, indem du regelm\u00e4\u00dfig eines wirklich wiederherstellst. Ein Backup, das du nie verifiziert hast, ist nur eine Datei, die vielleicht funktioniert. &#8222;Might&#8220; reicht nicht aus, wenn deine Checkout-Seite am Launch-Tag 405-Fehler wirft.<\/p>\n\n\n\n<p>Dokumentiere deine \u00c4nderungen an der Server-Konfiguration. F\u00fchre ein Changelog f\u00fcr .htaccess, nginx.conf und alle WAF-Regeln. Wenn drei Monate sp\u00e4ter ein 405 auftaucht, weil jemand an einer Limit-Direktive geschraubt hat, wei\u00dft du genau, was wann ge\u00e4ndert wurde. Dein zuk\u00fcnftiges Ich wird dir dankbar sein.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-faq-405-method-not-allowed-fehler\">FAQ: 405 Method Not Allowed Fehler<\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1773928869879\"><strong class=\"schema-faq-question\">Was ist ein 405 Method Not Allowed Fehler?<\/strong> <p class=\"schema-faq-answer\">Der Statuscode 405 ist eine HTTP-Fehlermeldung. Sie bedeutet, dass der Server die URL erkannt und die Ressource gefunden hat, aber die spezifische HTTP-Methode des Requests ablehnt. Wenn du ein DELETE an eine Seite sendest, die nur GET und POST akzeptiert, kriegst du einen 405. Die Ressource ist da; die Methode ist falsch. Der Server sollte in der 405-Antwort einen Allow-Header mitschicken, der die akzeptierten Methoden auflistet. Das gibt dir sofort die Informationen, wie du den Request korrigieren musst.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1773928878951\"><strong class=\"schema-faq-question\">Was ist der Unterschied zwischen 404 und 405?<\/strong> <p class=\"schema-faq-answer\">Ein 404 bedeutet, dass der Server unter dieser URL nichts finden konnte. Die Ressource existiert nicht oder der Pfad ist falsch. Ein 405 bedeutet, dass die Ressource da ist und die URL stimmt, aber der Server die gesendete HTTP-Methode nicht verarbeiten will. 404 hei\u00dft: &#8222;Hier gibt\u2019s nichts&#8220;. 405 hei\u00dft: &#8222;Das ist zwar hier, aber das darfst du damit nicht machen&#8220;. Die L\u00f6sung f\u00fcr einen 404 ist das Korrigieren der URL oder das Erstellen der fehlenden Ressource. Die L\u00f6sung f\u00fcr einen 405 ist das Nutzen der richtigen Methode oder das Umkonfigurieren des Servers.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1773928887994\"><strong class=\"schema-faq-question\">Kann ein Plugin einen 405-Fehler verursachen?<\/strong> <p class=\"schema-faq-answer\">Ja, und es ist eine der h\u00e4ufigsten Ursachen auf WordPress-Seiten. Plugins k\u00f6nnen benutzerdefinierte Routen registrieren, Rewrite-Regeln in .htaccess \u00e4ndern, Datenbankeintr\u00e4ge modifizieren und \u00e4ndern, wie Ihr Server eingehende Anfragen behandelt. Wenn ein 405 kurz nach der Installation oder Aktualisierung eines Plugins auftrat, deaktivieren Sie es zuerst. Das ist der schnellste Weg, um die Ursache zu best\u00e4tigen.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1773928897560\"><strong class=\"schema-faq-question\">Wie behebe ich einen 405 auf NGINX?<\/strong> <p class=\"schema-faq-answer\">\u00d6ffne deine nginx.conf und suche nach Location-Bl\u00f6cken, die HTTP-Methoden einschr\u00e4nken. Checke die error_page-Direktiven, die 405-Fehler auf statische Seiten umleiten, welche die urspr\u00fcngliche Methode nicht akzeptieren. F\u00fchre nach jeder \u00c4nderung nginx -t aus, um die Syntax zu pr\u00fcfen, bevor du den Server mit systemctl reload nginx neu l\u00e4dst. Wenn du Managed Hosting nutzt und keinen Zugriff auf die Config hast, kontaktiere den Support deines Anbieters.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1773928906042\"><strong class=\"schema-faq-question\">Beeinflusst ein 405-Fehler das SEO-Ranking?<\/strong> <p class=\"schema-faq-answer\">Ja, das kann passieren. Wenn ein Suchmaschinen-Crawler bei der Indexierung auf einen 405 st\u00f6\u00dft, kann er den Inhalt nicht erfassen. Dauerhafte 405-Fehler signalisieren Suchmaschinen Erreichbarkeitsprobleme. Das schadet deinem Crawl-Budget und kann dazu f\u00fchren, dass Seiten komplett aus dem Index fliegen. Nutzer, die wegen Fehlermeldungen sofort abspringen, verschlechtern zudem Metriken wie die Verweildauer \u2013 was indirekt dein Ranking negativ beeinflusst. Behebe 405-Fehler schnell, besonders auf Seiten mit viel organischem Traffic. Nutze die Google Search Console f\u00fcr das Monitoring von Crawl-Fehlern und richte Alerts ein, damit du Bescheid wei\u00dft, bevor dein Ranking abst\u00fcrzt. Ein Fehler, der nur ein paar Stunden besteht, wird wahrscheinlich keinen bleibenden Schaden anrichten. Ein Fehler, der wochenlang bleibt, hingegen schon.<\/p> <\/div> <\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Du klickst in einem Formular auf &#8222;Absenden&#8220;. Die Seite wirft einen Fehler 405 Method Not Allowed aus. Kein Stack-Trace, kein n\u00fctzlicher Hinweis, nur eine glatte Absage von deinem Server. Willkommen bei einem der nervigeren HTTP-Fehlercodes. Der HTTP-Statuscode 405 sagt dir eines ganz genau: Der Server hat die Ressource gefunden, deine Anfrage verstanden und die von [&hellip;]<\/p>\n","protected":false},"author":44,"featured_media":27981,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1399],"tags":[],"ppma_author":[3402],"class_list":["post-29451","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials"],"uagb_featured_image_src":{"full":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_how2-fix-the-405-method-not-allowed-error.webp",1200,630,false],"thumbnail":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_how2-fix-the-405-method-not-allowed-error-150x150.webp",150,150,true],"medium":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_how2-fix-the-405-method-not-allowed-error-600x315.webp",600,315,true],"medium_large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_how2-fix-the-405-method-not-allowed-error-768x403.webp",768,403,true],"large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_how2-fix-the-405-method-not-allowed-error.webp",1200,630,false],"1536x1536":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_how2-fix-the-405-method-not-allowed-error.webp",1200,630,false],"2048x2048":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_how2-fix-the-405-method-not-allowed-error.webp",1200,630,false]},"uagb_author_info":{"display_name":"Milan Ivanovic","author_link":"https:\/\/contabo.com\/blog\/de\/author\/milan\/"},"uagb_comment_info":0,"uagb_excerpt":"Du klickst in einem Formular auf &#8222;Absenden&#8220;. Die Seite wirft einen Fehler 405 Method Not Allowed aus. Kein Stack-Trace, kein n\u00fctzlicher Hinweis, nur eine glatte Absage von deinem Server. Willkommen bei einem der nervigeren HTTP-Fehlercodes. Der HTTP-Statuscode 405 sagt dir eines ganz genau: Der Server hat die Ressource gefunden, deine Anfrage verstanden und die von&hellip;","authors":[{"term_id":3402,"user_id":0,"is_guest":1,"slug":"contabro","display_name":"ContaBro","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts\/29451","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/users\/44"}],"replies":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/comments?post=29451"}],"version-history":[{"count":3,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts\/29451\/revisions"}],"predecessor-version":[{"id":29461,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts\/29451\/revisions\/29461"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/media\/27981"}],"wp:attachment":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/media?parent=29451"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/categories?post=29451"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/tags?post=29451"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/ppma_author?post=29451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}