Die URL Manipulation mit Hilfe von regulären Ausdrücken ist sehr mächtig. Mit Hilfe eines Musters wird definiert, ob die Aktion für die reale URL ausgeführt werden soll oder nicht.
Verwenden Sie folgende Syntax für Zeilen der Aktionsdatei.
<operation> <pattern> <dest> [<option>]
Hierbei haben die Werte die folgende Bedeutung.
Bezeichner |
Bedeutung und mögliche Werte |
---|---|
<operation> |
Request-Umleitung (redirect) : RegRedirectUrl , RegIRedirectUrl Requests filtern : RegForbiddenUrl , RegIForbiddenUrl , RegGoneUrl , RegIGoneUrl URL-Umschreibung (rewriting) : RegRewriteUrl , RegIRewriteUrl |
<pattern> |
Regulärer Ausdruck (Muster) für die URL |
<dest> |
Ersetzungsausdruck. Hierbei kann auf Request- oder Systemwerte zugegriffen werden oder mit $n auf im Suchstring gefunden geklammerten Teilstrings (zitierte Klammern). Soll keine Ersetzung durchgeführt werden, kann dies mit " - " bestimmt werden. |
[option] [optional] |
Optionen für die Regeln (diese sind abhängig von der Operation <operation>): noescape , restart , break , compound , skip Weitere Informationen: URL-Umschreibung (rewriting) einrichten |
Der reguläre Ausdruck wird auf den URL-dekodierten Pfad angewendet, die URL ist nicht normalisiert! Die URL-Dekodierung macht aus numerischen Zeichenangaben (%xx) den entsprechenden ASCII Wert.
Der URL-dekodierte Pfad von
sap(bD1kZSZjPTAwMA==)/bc/bsp%3csap%20test/it00/default.htm
ist
sap(bD1kZSZjPTAwMA==)/bc/bsp_sap test/it00/default.htm
Das Ergebnis der Suche kann durch ein vorangestelltes Ausrufezeichen negiert werden, da es sehr aufwendig ist, das logische "nicht" mit regulären Ausdrücken zu formulieren:
Die Zeile
RegIForbiddenUrl !^/sap/(.*) -
In der Aktionsdatei bewirkt, dass alle Requests, die nicht mit dem Präfix "/sap/" beginnen, abgewiesen werden.
Beachten Sie, dass die Zeilen
RegIRewriteUrl ^/dtcsld(.*) /sld$1
RegForbiddenUrl /(.*) -
immer "Forbidden" liefern werden, da alle Regeln nacheinander angewendet werden.
Wenn Sie erreichen wollen, dass bei Zutreffen der ersten Regel die zweite Regel nicht mehr angewendet wird, muss die erste Regel
RegIRewriteUrl ^/dtcsld(.*) /sld$1 [break]
lauten.