Show TOC

Dokumentation zur VorgehensweiseDefinieren von HTTP-Request Modifikationen — Anlegen und Pflegen einer Aktionsdatei Dieses Dokument in der Navigationsstruktur finden

 

Sie können einen HTTP-Request vom HTTP-Server (Internet Communication Manager bzw. SAP Web Dispatcher) noch vor der Weiterleitung an den Applikationsserver verändern. Die durchzuführenden HTTP-Request Modifikationen definieren Sie in einer Aktionsdatei. In einer Aktionsdatei definieren Sie sowohl HTTP-Headerfeld Modifikationen wie löschen, ändern und hinzufügen von HTTP-Headerfeldern; als auch URL-Modifikation wie URL-Umschreibung, URL-Umleitung und das Filtern von URLs. Alle Modifikationsaktionen können Sie mit Bedingungen verknüpfen.

Vorgehensweise

Definieren Sie die durchzuführenden Modifikationsaktionen zeilenweise in einer Textdatei. Eine Zeile in der Aktionsdatei definiert dabei genau eine Modifikationsaktion. Die Reihenfolge in der Aktionsdatei beschreibt auch die Ausführungsreihenfolge. Bei Eintreffen eines HTTP-Requests werden die in der Aktionsdatei definierten Modifikationsaktionen nacheinander abgearbeitet. Im Falle einer erfolgreichen URL-Filterung oder URL-Umleitung endet die Regelbearbeitung. Leerzeilen sowie Kommentarzeilen werden beim Ausführen der Datei ignoriert. Kommentarzeilen kennzeichnen Sie durch ein vorangestelltes # Zeichen.

Achtung Achtung

Die Zeilen:

RegIRewriteUrl ^/dtcsld(.*) /sld$1

RegForbiddenUrl /(.*) –

würden dem HTTP-Client immer ein Forbidden als Antwort senden, da alle Regeln nacheinander angewendet werden. Wenn Sie erreichen wollen, dass bei Zutreffen der ersten Modifikationsaktion die nachfolgenden Modifikationsaktionen nicht mehr ausgeführt werden, müssen Sie dies durch die Verwendung des Modifizierers (Option) [break] in der gewünschten Zeile definieren:

RegIRewriteURL ^/dtcsld(.*) /sld$1 [break]

Ende der Warnung.

Verwenden Sie den Parameter icm/HTTP/mod_<xx> um die Aktionsdatei anzugeben und die dort definierten Aktionen zu aktivieren. SAP empfiehlt aus Performancegründen nur einen Rewrite-Handler zu konfigurieren. Bitte beachten Sie, dass die Modifikationen an der Aktionsdatei nur beim Starten bzw. Durchstarten des Internet Communication Managers bzw. SAP Web Dispatcher aktiv werden. Sollen Änderungen in der Aktionsdatei während des laufenden Betriebes aktiviert werden, so müssen Sie dies explizit in der smicm bzw. ICM-Web Administrationsoberfläche anstoßen.

Beispiel

Beispiel einer Aktionsdatei:

Syntax Syntax

  1. # Modification rules for WebDisp
  2. # set WebDisp header
  3. SetHeader clientProtocol %{SERVER_PROTOCOL}
  4. SetHeader X-SAP-WEBDISP-AP %{SERVER_ACCESS_POINTS}
  5. # check for forbidden method
  6. if %{REQUEST_METHOD} !stricmp "GET" [AND]
  7. if %{REQUEST_METHOD} !stricmp "POST"
  8. RegForbiddenURL ^/(.*) -
  9. # default request
  10. RegRewriteURL ^/$ /index.html
  11. # Url rewriting
  12. if %{HTTP_HOST} regimatch ldp*
  13. RegIRewriteURL ^/ping(.*) /sap/public/icman/ping$1
Ende des Codes
Bedeutung der definierten Aktionen:

Syntax Syntax

  1. SetHeader clientProtocol % {SERVER_PROTOCOL}
Ende des Codes

Das Headerfeld clientProtocol wird auf den Wert der Variablen SERVER_PROTOCOL gesetzt

Syntax Syntax

  1. SetHeader X-SAP-WEBDISP-AP % {SERVER_ACCESS_POINTS}
Ende des Codes

Das Headerfeld X-SAP-WEBDISP-AP wird auf den Wert der Variablen SERVER_ACCESS_POINTS gesetzt

Syntax Syntax

  1. if %{REQUEST_METHOD} !stricmp "GET" [AND]
  2. if %{REQUEST_METHOD} !stricmp "POST"
  3. RegForbiddenURL ^/(.*) -
Ende des Codes

Es sind nur mit GET und POST gesendete Daten erlaubt: Wenn die Daten weder mit der GET- noch mit der POST-Methode gesendet werden, bekommt der Anrufer den HTTP-Fehler FORBIDDEN.

Syntax Syntax

  1. RegRewriteURL ^/$ /index.html
Ende des Codes

URLs, die nur aus dem Schrägstrich („/“) bestehen, werden in /index.html umgeschrieben.

Syntax Syntax

  1. if %{HTTP_HOST} regimatch ldp*
  2. RegIRewriteURL ^/ping(.*) /sap/public/icman/ping$1
Ende des Codes

Wenn der Rechnername (Wert der Variablen HTTP_HOST) mit ldp* beginnt, wird in URLs, die mit /ping beginnen, das /ping durch /sap/public/icman/ping ersetzt.