Regelausführung & Reihenfolge
Das Verständnis, wie smoxy Regeln auswertet und ausführt, ist entscheidend für den Aufbau effektiver Traffic-Management- und Sicherheitsrichtlinien. Diese Seite erklärt den Ausführungsablauf, das Reihenfolgensystem und die Verhaltensmuster aller Regeltypen.
Ausführungsablauf zwischen Regeltypen
Anfragen werden in einer bestimmten Reihenfolge verarbeitet:
Access Rules: Sicherheitsebene, wird zuerst ausgewertet, trifft Sicherheitsentscheidungen (blockieren, herausfordern, überspringen, fortfahren).
Rewrite Rules: URL-Umschreibung, modifiziert die Anfrage-URL bevor andere Regeln angewendet werden.
Page Rules: URL-basierte Einstellungen, werden nach URL-Umschreibungen konfiguriert.
Conditional Rules: Bedingungsbasierte Einstellungen, werden zuletzt angewendet.
Bedeutung der Reihenfolge:
Access Rules zuerst: Priorisiere Sicherheitsaktionen.
Rewrite Rules als zweites: Transformiere URLs für konsistente Verarbeitung.
Page Rules als drittes: Wende Konfigurationen auf die aktualisierte URL an.
Conditional Rules zuletzt: Implementiere komplexe Logikbedingungen.
Beispiel: Eine Anfrage an /alte-seite kann über eine Rewrite Rule zu /neue-seite umgeschrieben werden. Dann werden Page Rules für /neue-seite angewendet, gefolgt von relevanten Conditional Rules.
Position innerhalb jedes Regeltyps
Wie Position funktioniert
Innerhalb jedes Regeltyps werden Regeln basierend auf ihrer Position (auch Reihenfolge genannt) ausgewertet:
Position beginnt bei 1 (nicht 0)
Regeln werden in aufsteigender Reihenfolge ausgewertet (1 → 2 → 3 → ...)
Wenn du eine neue Regel erstellst, wird ihr automatisch die nächste verfügbare Position zugewiesen
Position ist unabhängig für jeden Regeltyp (z.B. Access Rule #1 und Page Rule #1 sind getrennt)
Beispiel:
Access Rules: Position 1, 2, 3, 4, 5...
Rewrite Rules: Position 1, 2, 3...
Page Rules: Position 1, 2, 3...
Conditional Rules: Position 1, 2, 3, 4...Position bestimmt die Auswertungsreihenfolge
Die Positionsnummer bestimmt, welche Regel innerhalb ihres Typs zuerst ausgewertet wird:
Position 1: Wird ZUERST ausgewertet
Position 2: Wird als ZWEITES ausgewertet
Position 3: Wird als DRITTES ausgewertet
...
Position N: Wird ZULETZT ausgewertetDies ist besonders wichtig für:
Access Rules: Whitelist-Regeln (skip- oder continue-Aktionen) sollten niedrigere Positionen haben als Block-Regeln
Rewrite Rules: Spezifischere URL-Muster sollten vor allgemeinen Mustern kommen
Page Rules: Spezifischere URL-Muster sollten vor allgemeinen Mustern kommen
Conditional Rules: Regeln, die du zuerst anwenden möchtest, sollten niedrigere Positionen haben
Regeln neu anordnen
Du kannst die Ausführungsreihenfolge deiner Regeln jederzeit über die Drag-and-Drop-Oberfläche im smoxy Dashboard ändern.
Wie das Neuanordnen funktioniert
Wenn du eine Regel an eine neue Position verschiebst:
Nach OBEN verschieben (zu einer kleineren Positionsnummer):
Alle Regeln zwischen der neuen und alten Position verschieben sich nach unten (+1)
Nach UNTEN verschieben (zu einer größeren Positionsnummer):
Alle Regeln zwischen der alten und neuen Position verschieben sich nach oben (-1)
Ans Ende verschieben:
Setze eine sehr hohe Positionsnummer (z.B. 100)
Das System platziert sie automatisch am Ende
Beispiel:
Vorher: [Regel-1, Regel-2, Regel-3, Regel-4, Regel-5]
Verschiebe Regel-5 auf Position 2
Nachher: [Regel-1, Regel-5, Regel-2, Regel-3, Regel-4]Positionsvalidierung
Das System stellt sicher:
Keine doppelten Positionen
Keine Lücken in den Positionsnummern
Sequentielle Reihenfolge wird beibehalten
Bei erkannten Konflikten werden alle Positionen automatisch neu berechnet
Erster Treffer vs. alle Treffer
Verschiedene Regeltypen haben unterschiedliche Ausführungsmuster:
Access Rules
Alle Treffer anwenden
⚠️ Optional
skip-Aktion kann nachfolgende Regeln überspringen
Rewrite Rules
Erster Treffer gewinnt
✅ Ja
Stoppt nach erstem URL-Treffer
Page Rules
Erster Treffer gewinnt
✅ Ja
Stoppt nach erstem URL-Treffer
Conditional Rules
Alle Treffer anwenden
⚠️ Optional
Fährt fort, außer stop=true
Access Rules - Positionsbasiert mit Skip
Access Rules werden in Positionsreihenfolge ausgewertet, aber die skip-Aktion beeinflusst die nachfolgende Ausführung:
Block/Challenge-Aktionen: Fahren mit der nächsten Access Rule fort
Skip-Aktion mit Flags:
access_rules=true: Überspringt verbleibende Access Ruleswaf=true: Umgeht die Web Application Firewall
Best Practice: Platziere Skip-Regeln (Whitelist) auf niedrigeren Positionen (1, 2, 3...) und Block/Challenge-Regeln auf höheren Positionen.
Ausnahme: Wenn eine Regel stop=true hat, werden keine weiteren Access Rules ausgewertet.
Rewrite Rules - Erster Treffer gewinnt
Rewrite Rules stoppen nach dem ersten passenden URL-Muster:
Position 1: Treffer /alter-pfad → Umschreiben zu /neuer-pfad → STOPP
Position 2: Treffer /legacy/* → WIRD NICHT AUSGEWERTET
Position 3: Treffer /* → WIRD NICHT AUSGEWERTETWichtig: Reihenfolge ist entscheidend! Spezifischere Muster sollten vor allgemeinen Mustern kommen.
Page Rules - Erster Treffer gewinnt
Page Rules stoppen nach dem ersten passenden URL-Muster:
Position 1: Treffer /admin/* → Einstellungen angewendet → STOPP
Position 2: Treffer /* → WIRD NICHT AUSGEWERTET
Position 3: Treffer /blog/* → WIRD NICHT AUSGEWERTETWichtig: Reihenfolge ist entscheidend! Spezifischere Muster sollten vor allgemeinen Mustern kommen.
Conditional Rules - Alle Treffer werden angewendet
Conditional Rules werten alle aktivierten Regeln aus, deren Bedingungen erfüllt sind:
Position 1: Treffer (IP aus Büro) → Einstellungen angewendet → Fortfahren
Position 2: Treffer (Land = DE) → Einstellungen angewendet → Fortfahren
Position 3: Treffer (URI = /api/*) → Einstellungen angewendet → Fortfahren
Alle drei Regeln können auf dieselbe Anfrage angewendet werden!Ausnahme: Wenn eine Regel stop=true hat, werden keine weiteren Conditional Rules ausgewertet.
Stop-Verhalten (Conditional & Access Rules)
Die Stop-Option ist nur für Conditional & Access Rules verfügbar.
Wie Stop funktioniert
Wenn aktiviert (stop=true):
Die Einstellungen der Regel werden angewendet
Alle nachfolgenden Regeln werden übersprungen
Andere Regeltypen (Rewrite, Page) sind nicht betroffen
Wenn deaktiviert (stop=false, Standard):
Die Einstellungen der Regel werden angewendet
Die Auswertung fährt mit der nächsten Regel fort
Anwendungsbeispiel:
Position 1: WENN (Wartungsmodus) DANN (Wartungsseite anzeigen) STOPP
Position 2: WENN (Büro-IP) DANN (Basic Auth deaktivieren) [wird während Wartung nie ausgewertet]
Position 3: WENN (Mobil) DANN (Bilder optimieren) [wird während Wartung nie ausgewertet]Cache-Hit vs. Cache-Miss Ausführung
Regeln werden in verschiedenen Phasen ausgeführt, abhängig davon, ob Inhalte aus dem Cache oder vom Origin-Server geladen werden:
Typischer Ausführungskontext
Access Rules: Werden bei Cache-Hit und Cache-Miss ausgeführt (Sicherheit gilt immer)
Rewrite Rules: Werden vor der Cache-Abfrage ausgeführt (URL-Transformation erfolgt zuerst)
Page Rules: Können unterschiedlich ausgeführt werden, je nachdem ob Inhalte gecacht sind
Conditional Rules: Werden basierend auf Anfragebedingungen ausgeführt (unabhängig vom Cache-Status)
Debug-Header
Aktiviere Debug-Header in der Konfiguration deiner Website um zu sehen:
Welche Regeln angewendet wurden
Cache-Treffer/Miss-Status
Details zur Regelauswertung
Dies hilft dir zu verstehen, wie genau deine Regeln für jede Anfrage ausgeführt werden.
Best Practices für die Regelreihenfolge
1. Access Rules - Whitelist zuerst
Position 1-3: Skip-Regeln (vertrauenswürdige IPs, interne Tools)
Position 4+: Block/Challenge-Regeln (verdächtiger Traffic)2. Rewrite Rules - Spezifisch vor allgemein
Position 1: /exakte-alte-url → /neue-url (am spezifischsten)
Position 2-3: Regex-Muster
Position 4-5: Catch-all-Muster (max. 5 Regeln insgesamt)3. Page Rules - Spezifisch vor allgemein
Position 1: /admin/super-geheim/* (am spezifischsten)
Position 2: /admin/* (spezifischer)
Position 3: /* (Catch-all)4. Conditional Rules - Kritische zuerst
Position 1: Wartungsmodus (mit stop=true)
Position 2-5: Geschäftslogik-Regeln
Position 6+: OptimierungsregelnDeine Regelreihenfolge testen
Aktiviere Debug-Header in deiner Website-Konfiguration
Führe Testanfragen an deine Website durch
Prüfe die Response-Header um zu sehen, welche Regeln angewendet wurden
Passe die Positionen basierend auf den Ergebnissen an
Wiederhole bis du das gewünschte Verhalten erreichst
Last updated
Was this helpful?