Tutorialbeispiele für Standard-Syntaxrichtlinien für das Umschreiben

Mit der Funktion Umschreiben können Sie einen beliebigen Teil eines HTTP-Headers ändern, und für Antworten können Sie den HTTP-Hauptteil ändern. Mit dieser Funktion können Sie eine Reihe nützlicher Aufgaben ausführen, z. B. das Entfernen unnötiger HTTP-Header, das Maskieren von internen URLs, das Umleiten von Webseiten und das Umleiten von Abfragen oder Schlüsselwörtern.

In den folgenden Beispielen erstellen Sie zunächst eine Umschreibaktion und eine Umschreibrichtlinie. Dann binden Sie die Richtlinie global.

Dieses Dokument enthält die folgenden Details:

  • Umleiten einer externen URL zu einer internen URL
  • Umleiten einer Abfrage
  • Umschreiben von HTTP in HTTPS
  • Entfernen unerwünschter Kopfzeilen
  • Reduzieren von Webserver-Weiterleitungen
  • Maskieren des Server-Headers
  • Konvertieren von Nur-Text in URL-codierte Zeichenfolge und umgekehrt

Weitere Informationen zu den Befehlen und Syntaxbeschreibungen finden SieBefehlsreferenz umschreibenauf Seite.

Umleiten einer externen URL zu einer internen URL

In diesem Beispiel wird beschrieben, wie Sie eine Umschreibaktion erstellen und eine Richtlinie neu schreiben, die eine externe URL an eine interne URL umleitet. Sie erstellen eine Aktion namens act_external_to_internal, die das Umschreiben durchführt. Anschließend erstellen Sie eine Richtlinie namens pol_external_to_internal.

So leiten Sie eine externe URL mit der Befehlszeilenschnittstelle an eine interne URL um

  • Um die Umschreibungsaktion zu erstellen, geben Sie an der Eingabeaufforderung Folgendes ein:

    add rewrite action act_external_to_internal REPLACE 'http.req.hostname.server' "host_name_of_internal_Web_server"

  • Um die Richtlinie zum Umschreiben zu erstellen, geben Sie an der Citrix ADC Eingabeaufforderung Folgendes ein:

    add rewrite policy pol_external_to_internal 'http.req.hostname.server.eq("host_name_of_external_Web_server")' act_external_to_internal

  • Binden Sie die Richtlinie global.

So leiten Sie eine externe URL mit dem Konfigurationsdienstprogramm an eine interne URL um

  1. Navigieren Sie zu AppExpert > Umschreiben > Aktionen .

  2. Klicken Sie im Detailbereich auf Hinzufügen.

  3. Geben Sie im Dialogfeld Rewrite Action erstellen den Namen act_external_to_internal ein.

  4. Um den Hostnamen des HTTP-Servers durch den internen Servernamen zu ersetzen, wählen Sie im Listenfeld Typ die Option Ersetzen aus.

  5. Geben Sie im Feld Kopfzeilenname den Namen Hostein.

  6. Geben Sie im Feld String expression for replacement text den internen Hostnamen des Webservers ein.

  7. Klicken Sie auf Create und dann auf Close.

  8. Klicken Sie im Navigationsbereich auf Richtlinien.

  9. Klicken Sie im Detailbereich auf Hinzufügen.

  10. Geben Sie im Feld Name pol_external_to_internal ein. Diese Richtlinie erkennt Verbindungen zum Webserver.

  11. Wählen Sie im Dropdown-Menü Aktion die Aktion act_external_to_internal aus.

  12. Erstellen Sie im Ausdruckseditor den folgenden Ausdruck:

HTTP.REQ.HOSTNAME.SERVER.EQ("www.example.com")
  1. Binden Sie Ihre neue Richtlinie global.

Umleiten einer Abfrage

In diesem Beispiel wird beschrieben, wie eine Umschreibungsaktion und eine Umschreibungsrichtlinie erstellt wird, die eine Abfrage an die richtige URL umleitet. Im Beispiel wird davon ausgegangen, dass die Anforderung einen Host-Header enthält, der auf www.example.com festgelegt ist, und eine GET-Methode mit der Zeichenfolge /query.cgi?server=5. Die Umleitung extrahiert den Domänennamen aus dem Host-Header und die Nummer aus der Abfragezeichenfolge und leitet die Abfrage des Benutzers an den Server Web5.example.comum, wo der Rest der Abfrage des Benutzers verarbeitet wird.

Hinweis: Obwohl die folgenden Befehle in mehreren Zeilen angezeigt werden, sollten Sie sie in einer einzigen Zeile ohne Zeilenumbrüche eingeben.

So leiten Sie eine Abfrage mit der Befehlszeile an die entsprechende URL um

  • Um eine Rewrite-Aktion namens act_redirect_query zu erstellen, die den Hostnamen des HTTP-Servers durch den internen Servernamen ersetzt, geben Sie Folgendes ein:

    add rewrite action act_redirect_query REPLACE q#http.req.header(“Host”).before_str(“.example.com”)’ ‘“Web” + http.req.url.query.value(“server”)#

  • Um eine Rewrite-Richtlinie mit dem Namen pol_redirect_query zu erstellen, geben Sie die folgenden Befehle an der Citrix ADC Eingabeaufforderung ein. Diese Richtlinie erkennt Verbindungen zum Webserver, die eine Abfragezeichenfolge enthalten. Wenden Sie diese Richtlinie nicht auf Verbindungen an, die keine Abfragezeichenfolge enthalten:

    add rewrite policy pol_redirect_query q#http.req.header(“Host”).eq(“www.example.com”) && http.req.url.contains(“?”)’ act_redirect_query#

  • Binden Sie Ihre neue Richtlinie global.

Da diese Umschreibungsrichtlinie sehr spezifisch ist und vor anderen Umschreibungsrichtlinien ausgeführt werden sollte, empfiehlt es sich, ihr eine hohe Priorität zuzuweisen. Wenn Sie ihm eine Priorität von 1 zuweisen, wird sie zuerst ausgewertet.

Umschreiben von HTTP in HTTPS

In diesem Beispiel wird beschrieben, wie Webserver-Antworten neu geschrieben werden, um alle URLs zu finden, die mit der Zeichenfolge http beginnen und diese Zeichenfolge durch https ersetzen. Sie können dies verwenden, um zu vermeiden, dass Webseiten nach dem Verschieben eines Servers von HTTP auf HTTPS aktualisiert werden müssen.

So leiten Sie HTTP-URLs mit der Befehlszeilenschnittstelle an HTTPS um

  • Um eine Rewrite-Aktion namens act_replace_http_with_https zu erstellen, die alle Instanzen der Zeichenfolge http durch die Zeichenfolge https ersetzt, geben Sie den folgenden Befehl ein:

    add rewrite action act_replace_http_with_https replace_all ‘http.res.body(100)’ ‘“https”’ -pattern http

  • Um eine Rewrite-Richtlinie mit dem Namen pol_replace_http_with_https zu erstellen, die Verbindungen zum Webserver erkennt, geben Sie den folgenden Befehl ein:

    add rewrite policy pol_replace_http_with_https TRUE act_replace_http_with_https NOREWRITE

  • Binden Sie Ihre neue Richtlinie global.

Informationen zur Fehlerbehebung dieses Umschreibvorgangs finden Sie unter Fallstudie: Umschreiben der Richtlinie zum Konvertieren von HTTP-Links in HTTPS funktioniert nicht.

Entfernen unerwünschter Kopfzeilen

In diesem Beispiel wird erläutert, wie Sie eine Richtlinie zum Umschreiben verwenden, um unerwünschte Kopfzeilen zu entfernen. Insbesondere zeigt das Beispiel, wie die folgenden Header entfernt werden:

  • Akzeptieren Sie die Kodierungskopfzeile. Wenn Sie den Header Accept Encoding aus HTTP-Antworten entfernen, wird die Komprimierung der Antwort verhindert.
  • Kopfzeile des Inhaltsspeicherorts. Wenn Sie den Content Location-Header aus HTTP-Antworten entfernen, wird verhindert, dass Ihr Server einem Hacker Informationen zur Verfügung stellt, die eine Sicherheitsverletzung ermöglichen könnten.

Um Header aus HTTP-Antworten zu löschen, erstellen Sie eine Umschreibungsaktion und eine Umschreibungsrichtlinie und binden die Richtlinie global.

So erstellen Sie die entsprechende Aktion Umschreiben mit der Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung einen der folgenden Befehle ein, um entweder den Header Accept Encoding zu entfernen und die Antwortkomprimierung zu verhindern, oder den Inhaltsspeicher-Header zu entfernen:

  • add rewrite action “act_remove-ae” delete_http_header “Accept-Encoding”
  • add rewrite action “act_remove-cl” delete_http_header “Content-Location”

So erstellen Sie mit der Befehlszeilenschnittstelle die entsprechende Rewrite-Richtlinie

Geben Sie an der Eingabeaufforderung einen der folgenden Befehle ein, um entweder den Header Encoding akzeptieren oder den Header Content Location zu entfernen:

  • add rewrite policy “pol_remove-ae” true “act_remove-ae”
  • add rewrite policy “pol_remove-cl” true “act_remove-cl”

So binden Sie die Richtlinie global über die Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung einen der folgenden Befehle ein, um die erstellte Richtlinie global zu binden:

  • bind rewrite global pol_remove_ae 100
  • bind rewrite global pol_remove_cl 200

Reduzieren von Webserver-Weiterleitungen

In diesem Beispiel wird erläutert, wie Sie eine Richtlinie zum Umschreiben verwenden, um Verbindungen zu Ihrer Homepage und anderen URLs zu ändern, die mit einem Schrägstrich (/) auf die Standardindexseite für den Server enden, wodurch Umleitungen vermieden und die Belastung des Servers verringert wird.

So ändern Sie HTTP-Anforderungen auf Verzeichnisebene mit der Befehlszeile

  • Geben Sie Folgendes ein, um eine Aktion Umschreiben mit dem Namen action-default-homepage zu erstellen, die URLs, die mit einem Schrägstrich enden, so dass sie die Standardstartseite index.html enthält:

    add rewrite action “action-default-homepage” replace q#http.req.url.path “/” “/index.html”#

  • Um eine Richtlinie zum Umschreiben mit dem Namen policy-default-homepage zu erstellen, die Verbindungen zu Ihrer Homepage erkennt und die neue Aktion anwendet, geben Sie Folgendes ein:

    add rewrite policy “policy-default-homepage” q#http.req.url.path.EQ(“/”) “action-default-homepage”#

  • Binden Sie Ihre neue Richtlinie global an, um sie in Kraft zu setzen.

Maskieren des Server-Headers

In diesem Beispiel wird erläutert, wie Sie eine Richtlinie zum Umschreiben verwenden, um die Informationen im Server-Header in HTTP-Antworten vom Webserver zu maskieren. Dieser Header enthält Informationen, die Hacker verwenden können, um Ihre Website zu gefährden. Während das Maskieren des Headers einen erfahrenen Hacker nicht daran hindert, Informationen über Ihren Server zu finden, wird es das Hacken Ihres Webservers schwieriger und Hacker ermutigen, weniger gut geschützte Ziele zu wählen.

So maskieren Sie den Server-Header in Antworten über die Befehlszeile

  1. Um eine Rewrite -Aktion namens act_mask-server zu erstellen, die den Inhalt des Server-Headers durch eine nicht informative Zeichenfolge ersetzt, geben Sie Folgendes ein:

    add rewrite action “act_mask-server” replace “http.RES.HEADER(\“Server\”)” “\“Web Server 1.0\””

  2. Geben Sie Folgendes ein, um eine Rewrite-Richtlinie mit dem Namen pol_mask-server zu erstellen, die alle Verbindungen erkennt:

    add rewrite policy “pol_mask-server” true “act_mask-server”

  3. Binden Sie Ihre neue Richtlinie global an, um sie in Kraft zu setzen.

Wie konvertiert man Nur-Text in URL-codierte Zeichenfolge und umgekehrt

Die folgenden Ausdrücke konvertieren Nur-Text in URL-codierte Zeichenfolge und umgekehrt:

  1. URL_RESERVED_CHARS_SAFE (string to URL ENCODED).

    Beispiel

    ("abc def&123").URL_RESERVED_CHARS_SAFE
    Output will be
    “abc%20def%26123” which is url encoded.
    
  2. SET_TEXT_MODE (URLENCODED) .DECODE_USING_TEXT_MODE. (URL ENCODED to string)

    Beispiel:

    ("abc%20def%26123").SET_TEXT_MODE(URLENCODED).DECODE_USING_TEXT_MODE
    Output will be
    “abc def&123”