Show TOC

FunktionsdokumentationURL-Umschreibung / Rewriting einrichten Dieses Dokument in der Navigationsstruktur finden

 

Eingehende HTTP-Requests können modifiziert werden, noch bevor sie an den Applikationsserver weitergeleitet werden. Modifikationsaktionen können auch die URL betreffen. Sie können sowohl den URL-Pfad als auch den Querystring eines eingehenden HTTP-Request in einen anderen zuvor definierten URL-Pfad bzw. Querystring umschreiben (Rewriting einrichten).

Der URL-Pfad umfasst alle Zeichen vor dem „?“ Zeichen falls ein Querystring folgt.

Der Querystring einer URL umfasst alle Zeichen nach dem „?“ Zeichen. Ein Querystring umfasst alle Queryparameter einer URL. Die einzelnen Queryparameter werden durch ein „&“ voneinander getrennt.

Beispiel Beispiel

Beim HTTP-Request „/sap/xi/send?client=100&sap-language=de&keep_context" ist der URL-Pfad “/sap/xi/send” und der Querystring “client=100&sap-language=de&keep_context”..

Ende des Beispiels.

Eine Zeile in der Aktionsdatei beschreibt dabei genau eine Modifikationsaktion. Die Reihenfolge in der Aktionsdatei beschreibt auch die Ausführungsreihenfolge. Sie können mehrere URL-Umschreibungen hintereinander ausführen. Die Ausführung der HTTP-Headerfeld-Modifikationen können Sie mit einer bzw. mehreren Bedingungen verknüpfen.

Integration

Verwenden Sie folgende Syntax, um HTTP-Headerfeld-Modifikationen in der Aktionsdatei zu definieren:

Syntax Syntax

  1. <operation> <pattern> <dest> [<option>]
Ende des Codes

Die Groß- bzw. Kleinschreibung der Operation spielt keine Rolle.

Bedeutung der Syntax:

<operation>

Mit den beiden Modifikationsaktionen RegRewriteURL und RegIRewriteURL können Sie die URL des HTTP-Request in eine andere URL umschreiben.

  • RegRewriteURL: Die Groß- bzw. Kleinschreibung wird beim Pattern Match berücksichtigt (Case Sensitive Pattern Match)

  • RegIRewriteURL: Die Groß- bzw. Kleinschreibung wird beim Pattern Match nicht berücksichtigt (Case Insensitive Pattern Match).

<pattern>

Muster, mit dem verglichen werden soll. Ist im Querystring des HTTP-Request dieses Muster enthalten, wird der URL-Pfad defaultmäßig in den unter <dest> definierten URL-Pfad umgeschrieben. Ob der Querystring umgeschrieben wird oder nicht, hängt davon ab, ob die Optionen qsreplace und qsappend angegeben wurden. Sind die beiden Optionen nicht gesetzt, so wird der Querystring des HTTP-Request nicht modifiziert.

[<option>]

  • noescape: Das Ergebnis wird in diesem Fall nicht URL-kodiert. Standardmäßig wird immer URL-kodiert (Ersetzung von speziellen Zeichen: %, /, &). Dieser Modifizierer (Option) ist nur sinnvoll bei URL-Umschreibungen und URL-Umleitungen.

  • restart: Es wird erneut bei der ersten definierte Modifikationsaktion begonnen. Die bereits durchgeführten Modifikationsaktionen behalten ihre Gültigkeit.

  • break: Nachfolgende Modifikationsaktionen werden nicht mehr ausgeführt.

  • qsreplace: Wird die Option qsreplace gesetzt, wird der Original Querystring des HTTP-Requests durch den unter <dest> definierten Querystring ersetzt. Der Querystring wird auch durch die gesetzten Queryparameter umgeschrieben bzw. ergänzt, wenn im HTTP-Request kein Querystring enthalten ist.

  • qsappend: Wird die Option qsappend gesetzt, wird der Original Querystring des HTTP-Requests durch den unter <dest> definierten Querystring erweitert. Der Querystring wird auch um die gesetzten Queryparameter erweitert, wenn im HTTP-Request kein Querystring enthalten ist.

Sie können mehrere Optionen hintereinander angeben, diese sind durch ein „ , “ zu trennen. Die Verwendung von compound (Gruppierung von einzelnen Modifikationsaktionen zu einem Block) und skip (Überspringen von n Modifikationsaktionen) wird nicht mehr empfohlen.

Beispiel

Die folgenden Beispiele zeigen die Auswirkungen von Modifikationsaktionen auf ausgewählte HTTP-Requests.

Beispiel A:

Ausschnitt aus der Aktionsdatei:

Syntax Syntax

  1. RegRewriteUrl ^/ping/info /sap/public/icman/ping
Ende des Codes

Request vor der URL-Umschreibung

Request nach der URL-Umschreibung

/ping/info

/sap/public/icman/ping

Beispiel B:

Ausschnitt aus der Aktionsdatei:

Syntax Syntax

  1. RegIRewriteUrl ^/echo(.*) /sap/bc/echo?header=1
Ende des Codes

Request vor der URL-Umschreibung

Request nach der URL-Umschreibung

URL-Pfad

/echo

/sap/bc/echo?header=1

URL-Pfad+Querystring

/echo?client=100

/sap/bc/echo?client=100

HTTP-Request enthält nur URL-Pfad:

Im Falle eines Pattern Match wird der URL-Pfad /echo des HTTP-Request durch den in der Aktionsdatei definierten URL-Pfad /sap/bc/echo ergänzt.

HTTP-Request enthält URL-Pfad und einen Querystring:

Im Falle eines Pattern Match wird der URL-Pfad /echo des HTTP-Request /echo?client=100 durch den in der Aktionsdatei definierten URL-Pfad /sap/bc/echo ergänzt. Der Querystring des HTTP-Requests wird nicht modifiziert.

Beispiel C:

Ausschnitt aus der Aktionsdatei:

Syntax Syntax

  1. RegIRewriteUrl ^/echo(.*) /sap/bc/echo?header=1 [qsreplace]
Ende des Codes

Request vor der URL-Umschreibung

Request nach der URL-Umschreibung

URL-Pfad

/echo

/sap/bc/echo?header=1

URL-Pfad+Querystring

/echo?client=100

/sap/bc/echo?header=1

HTTP-Request enthält nur URL-Pfad:

Im Falle eines Pattern Match wird der URL-Pfad /echo des HTTP-Request durch den in der Aktionsdatei definierten URL-Pfad /sap/bc/echo ergänzt. Weiterhin wird der in der Aktionsdatei angegebene Querystring header=1 an den URL-Pfad angehängt.

HTTP-Request enthält URL-Pfad und einen Querystring:

Im Falle eines Pattern Match wird der URL-Pfad /echo des HTTP-Request /echo?client=100 durch den in der Aktionsdatei definierten URL-Pfad /sap/bc/echo ergänzt. Weiterhin überschreibt der in der Aktionsdatei angegebene Querystring den Querystring des eingehenden HTTP-Requests.

Beispiel D:

Ausschnitt aus der Aktionsdatei:

Syntax Syntax

  1. RegIRewriteUrl ^/echo(.*) /sap/bc/echo?header=1 [qsappend]
Ende des Codes

Request vor der URL-Umschreibung

Request nach der URL-Umschreibung

URL-Pfad

/echo

/sap/bc/echo?header=1

URL-Pfad+Querystring

/echo?client=100

/sap/bc/echo?client=100&header=1

HTTP-Request enthält nur URL-Pfad:

Im Falle eines Pattern Match wird der URL-Pfad /echo des HTTP-Request durch den in der Aktionsdatei definierten URL-Pfad /sap/bc/echo ergänzt.

HTTP-Request enthält URL-Pfad und einen Querystring:

Im Falle eines Pattern Match wird der URL-Pfad /echo des HTTP-Request /echo?client=100 durch den in der Aktionsdatei definierten URL-Pfad /sap/bc/echo ergänzt. Weiterhin wird der Querystring des eingehenden Requests um den in der Aktionsdatei angegebenen Querystring ergänzt.