Show TOC

URLs manipulierenLocate this document in the navigation structure

Verwendung

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.

Vorgehensweise

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

Hinweis

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.

Beispiel

Der URL-dekodierte Pfad von

sap(bD1kZSZjPTAwMA==)/bc/bsp%3csap%20test/it00/default.htm

ist

sap(bD1kZSZjPTAwMA==)/bc/bsp_sap test/it00/default.htm

Empfehlung

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:

Beispiel

Die Zeile

RegIForbiddenUrl !^/sap/(.*) -

In der Aktionsdatei bewirkt, dass alle Requests, die nicht mit dem Präfix "/sap/" beginnen, abgewiesen werden.

Achtung

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.