Wenn Ihre Website hinter Cloudflare läuft und eine Rate-Limiting-Regel aktiv ist, kann diese Regel auch die WP STAGING REST API erfassen. Cloudflare beantwortet solche Anfragen dann mit HTTP 429 (Too Many Requests), und WP STAGING Funktionen, die auf die REST API angewiesen sind, arbeiten nicht mehr. Die Lösung ist eine einzeilige Ausnahme in der Rate-Limiting-Regel.
Warum blockiert Cloudflare Rate Limiting die WP STAGING REST API?
Cloudflare Rate-Limiting-Regeln werten die eingehende Anfrage aus, nicht das Plugin, das sie gesendet hat. Eine Regel für Ihre gesamte Domain oder für einen stark frequentierten Pfad wie /booking zählt deshalb auch die internen Anfragen mit, die WP STAGING an seine eigene REST API stellt.
Sobald der Zähler überschritten ist, blockiert Cloudflare weitere passende Anfragen und liefert HTTP 429 zurück. WP STAGING erreicht WordPress dann gar nicht mehr, und die aufrufende Funktion schlägt fehl oder bleibt hängen.
Ihre Website ist betroffen, wenn alle folgenden Punkte zutreffen:
- Cloudflare Rate Limiting ist für die Zone aktiviert.
- Eine Rate-Limiting-Regel erfasst die WordPress-Website oder einen Pfad darin, zum Beispiel
/booking. - Diese Regel schließt die WP STAGING REST API nicht aus.
Welche WP STAGING Funktionen fallen aus?
Die WP STAGING REST API wird von mehreren Funktionen genutzt, unter anderem:
- Hintergrundprozesse
- Remote Sync
- Magic Login
- Automatische Plugin-Updates
- Weitere Funktionen auf REST-API-Basis
Werden diese Anfragen rate-limitiert, schlagen sie mit HTTP 429 fehl, und die auslösende Funktion kann nicht abgeschlossen werden.
Wie schließe ich die WP STAGING REST API vom Cloudflare Rate Limiting aus?
Bearbeiten Sie die Rate-Limiting-Regel so, dass sie Anfragen an die WP STAGING REST API nicht mehr erfasst.
Schritt 1: Die Rate-Limiting-Regeln öffnen
Wählen Sie im Cloudflare-Dashboard Ihr Konto und anschließend Ihre Domain aus, gehen Sie zu Security und öffnen Sie Security rules. Dort sind Ihre Rate-Limiting-Regeln aufgelistet.
Schritt 2: Die Regel für Ihre WordPress-Website bearbeiten
Öffnen Sie die Regel, die die WordPress-Website oder den Pfad abdeckt, auf dem die 429-Antworten auftreten.
Schritt 3: Die Ausnahme zum Regelausdruck hinzufügen
Hängen Sie diese Bedingung an den Ausdruck der Regel an:
and not http.request.uri.query contains "/wpstg/v1"
Ein vollständiger Ausdruck für eine Regel, die /booking schützt, sieht dann so aus:
(http.host eq "example.com" and starts_with(http.request.uri.path, "/booking")) and not http.request.uri.query contains "/wpstg/v1"
Schritt 4: Die Regel bereitstellen
Speichern und bereitstellen. Anfragen wie die folgende werden nicht mehr rate-limitiert, während der Rest Ihrer Website geschützt bleibt:
?rest_route=/wpstg/v1/check_magic_login
Hinweis:
wpstg/v1ist Teil des Query-Strings, nicht des URL-Pfads. WP STAGING ruft seine REST API über die Form?rest_route=auf. Verwenden Sie in der Ausnahme deshalbhttp.request.uri.querystatthttp.request.uri.path.
FAQ
Warum verwendet die Ausnahme http.request.uri.query und nicht http.request.uri.path?
WP STAGING bildet seine REST-URLs als https://example.com/?rest_route=/wpstg/v1/<endpoint>. Der Namespace wpstg/v1 steht damit im Query-String. Eine Regel, die auf http.request.uri.path prüft, würde ihn nie sehen, und die Ausnahme bliebe wirkungslos.
Schwächt diese Ausnahme den Schutz meiner Website?
Sie nimmt ausschließlich Anfragen aus, deren Query-String /wpstg/v1 enthält. Alle anderen Anfragen an Ihre Domain zählen weiterhin für die Rate-Limiting-Regel.
Ich sehe 429-Fehler auch unter /wp-json/wpstg/v1/. Was dann?
Manche Konfigurationen erreichen die REST API stattdessen über die Permalink-Form. Fügen Sie in diesem Fall eine zweite Bedingung für den Pfad hinzu:
and not starts_with(http.request.uri.path, "/wp-json/wpstg/v1/")
Kann der 429-Fehler auch andere Ursachen als Cloudflare haben?
Ja. Web Application Firewalls, Rate Limiting auf Serverebene und Sicherheits-Plugins können ebenfalls HTTP 429 zurückgeben. Prüfen Sie Ihre Server- und Plugin-Logs, wenn die Fehler nach dem Ausrollen der Cloudflare-Ausnahme weiter auftreten.
Wie prüfe ich, ob die Lösung funktioniert hat?
Lösen Sie die fehlgeschlagene Funktion erneut aus, öffnen Sie zum Beispiel einen Magic-Login-Link oder starten Sie einen Remote Sync, und sehen Sie im Cloudflare-Log Security Events nach. Anfragen mit /wpstg/v1 sollten dort keine Rate-Limiting-Blockade mehr zeigen.