Umleitungsregeln in einer JSON-Datei angeben

Sie können Umleitungsregeln für URLs in einer JSON-Datei angeben.

Geben Sie Umleitungsregeln für URLs im folgenden Format in einer JSON-Datei an.

{
         "redirectRules":
         [
                {
                        "type": "string",
                        "comment": "this rule is applied first",
                        "expression": "/index.htm",
                        "location": "/home.html"
                },
                {
                        "type": "wildcard",
                        "expression": "/items/*?page=*",
                        "location": "/<$page$>?item=<$wildcard(1)$>",
                        "code": 302
                }
        ]
} 

Die äußere umschließende Struktur in der JSON-Datei ist ein Array. Das Array enthält Regelinstanzen.

Die "string"-Regeln werden zuerst ausgewertet, gefolgt von den "wildcard"-Regeln in der jeweiligen Reihenfolge. Wenn eine der Regeln erfüllt wird, werden die nachfolgenden Regeln nicht ausgewertet, und die entsprechende Umleitung wird generiert.

Jede Regel weist die folgenden Eigenschaften auf:

  • Die "comment"-Eigenschaft ist eine optionale Zeichenfolge, die sich nicht auf die Auswertung der Regeln auswirkt. Sie enthält Notizen oder Kommentare.

  • Die "expression"-Eigenschaft ist eine erforderliche Zeichenfolge, die für den Vergleich mit der eingehenden zur Site relativen URL herangezogen wird. In einer Platzhalterregel entspricht das Sternchentoken (*) Null oder mehr Zeichen.

  • Die "location"-Eigenschaft ist eine erforderliche Zeichenfolge, die den Speicherort oder das Ziel der Umleitung angibt. Die Umleitung kann eine vollständige oder relative URL sein.

  • Die "code"-Eigenschaft ist eine optionale Ganzzahl, die den HTTP-Antwortcode angibt, der beim Ausgeben der Umleitung verwendet werden soll. Der Wert muss eine der folgenden Ganzzahlen sein:

    • 301: Gibt an, dass die Ressource endgültig verschoben wurde. Das ist der Standardwert, wenn die "code"-Eigenschaft weggelassen wird.

    • 302: Gibt an, dass die Ressource vorübergehend verschoben wurde.

  • Die "type"-Eigenschaft ist eine optionale Zeichenfolge, die den Typ einer Umleitungsregel angibt. Der Wert muss eine der folgenden Zeichenfolgen sein:

    • "string" gibt eine schnellere Regel an, deren Ausdruck die ganze Eingabe-URL genau abgleicht.

    • "wildcard" gibt eine Platzhalterregel an, die mehrere URLs abgleichen kann. Das ist der Standardwert, wenn die Eigenschaft weggelassen wird.

Speicherorttoken

Mit Speicherorttoken können Sie einen Umleitungsort erstellen. Jedes der folgenden Speicherorttoken kann zur Angabe einer Umleitung verwendet werden:

  • <$urlPath$>: Der Pfadteil der übereinstimmenden URL.

  • <$urlQueryString$>: Die gesamte URL-Abfragezeichenfolge von der übereinstimmenden URL.

  • <$urlQueryStringExcept(name1,name2)$>: Die gesamte URL-Abfragezeichenfolge von der übereinstimmenden URL ohne die genannten Parameter.

  • <$wildcard(N)$>: Der 1-basierte Index des Abgleichsplatzhalters in der übereinstimmenden URL. (Das entspricht \1..\9 in regulären Ausdrücken.)

  • <$name$>: Der Wert des angegebenen Abfragezeichenfolgenparameters. Beispiel: Sie verwenden die Abfragezeichenfolge msmith: ?page=42 in der Eingabe. Dann können Sie <$page$> im Speicherort verwenden, um '42' dort abzulegen.

Einschränkungen

Die folgenden Einschränkungen gelten für die Datei redirects.json als Ganzes und die darin enthaltenen Regeln:

  • Oracle Content Management akzeptiert Dateien mit einer maximalen Gesamtgröße von 250 KB.

  • Die Datei redirects.json darf maximal 1.000 Regeln enthalten.

  • Die maximale "expression"-Länge für eine Regel beträgt 1.000 Zeichen.

  • Die maximale "location"-Länge für eine Regel beträgt 2.000 Zeichen.

  • In einem Platzhalterregelausdruck sind maximal 10 '*'-Token zulässig.

Beispiel für Zeichenfolgenvergleich

Regel:

        {
              "type": "string",
              "expression": "/old/page.jsp?id=material&type=glass",
              "location": "/new/<$id$>.htm"
        }            

Die folgende URL entspricht der Regel:

/old/page.jsp?id=material&type=glass
  • Ergebnisspeicherort: /new/material.htm

  • Die gesamte URL, einschließlich Abfragezeichenfolge, stimmt überein.

  • Obwohl <$id$> im Speicherort verwendet wird, ist das bei diesem Beispiel nicht erforderlich, da nur eine mögliche Abfragezeichenfolge übereinstimmen kann. Der Speicherort hätte auch als /new/material.htm angegeben werden können.

Die folgenden URLs entsprechen nicht der Regel:

  • /old/page.jsp

    (Der Regelausdruck gibt eine Abfragezeichenfolge an, die übereinstimmen muss.)

  • /old/page.jsp?id=material&type=glass&index=2

    (Das zusätzliche &index=2 in der Kandidaten-URL stimmt nicht genau mit dem Regelausdruck überein.)

  • /old/page.jsp?type=glass&id=material

    (Die Reihenfolge der Abfragezeichenfolgenparameter muss in einer "string"-Regel übereinstimmen.)

Beispiel für Platzhalterabgleich

Regel:

        {
              "type": "wildcard",
              "expression": "/old/*/pages/*?id=*&item=sheet-*",
              "location": "/new/<$id$>/<$wildcard(4)$>.html"
        }            

Die folgenden URLs entsprechen der Regel:

  • /old/phones/android/pages/info.asp?id=XT1045&item=sheet-specs

    • Ergebnisspeicherort: /new/XT1045/specs.html

    • Da der Pfadteil der URL übereinstimmt, wird auch die Abfragezeichenfolge auf Übereinstimmung geprüft.

    • Die Parameter in diesem Beispiel entsprechen der Reihenfolge der Parameter im Regelausdruck. Das ist aber nicht erforderlich.

  • /old/phones/android/pages/info.asp?item=sheet-specs&id=XT1045

    • Ergebnisspeicherort: /new/XT1045/specs.html

    • Der Pfadteil der URL entspricht dem Regelausdruck vor dem Fragezeichen (?). Daher werden die Parameter ebenfalls auf Übereinstimmung geprüft.

    • Obwohl die Parameter in einer anderen Reihenfolge im Regelausdruck aufgelistet sind, werden sie einzeln abgeglichen.

  • /old/phones/android/pages/info.asp?id=XT1045&item=sheet-specs&unrelated=thing

    • Ergebnisspeicherort: /new/XT1045/specs.html

    • Da der Pfadteil der URL übereinstimmt, wird auch die Abfragezeichenfolge auf Übereinstimmung geprüft.

    • Die Kandidaten-URL weist den zusätzlichen Parameter &unrelated=thing auf. Da aber die angegebenen Abfrageparameter im Regelausdruck übereinstimmen, gilt die Regel als erfüllt.

    • Der Parameter unrelated wäre als Token im Speicherort verfügbar (<$unrelated$>) und würde den Wert thing aufweisen, auch wenn er nicht zum Regelabgleich beiträgt.

Die folgenden URLs entsprechen nicht der Regel:

  • /old/pages/info.jsp

    (Der Pfadteil der URL stimmt nicht mit dem Pfadteil des Regelausdrucks überein.)

  • /old/phones/android/pages/info.asp

    (Der Pfadteil der URL stimmt mit dem Pfadteil des Regelausdrucks überein, aber die Abfrageparameter im Regelausdruck stimmen nicht überein.)

  • /old/phones/android/pages/info.asp?id=cellular

    (Der Pfadteil der URL stimmt mit dem Pfadteil des Regelausdrucks überein, aber nicht alle Abfrageparameter im Regelausdruck stimmen überein.)

Tokenarray definieren

Sie können auch ein Array mit Tokendefinitionen in der Datei redirects.json erstellen, um Umleitungen, die mehrere Vanity-URLs unterstützen, zu erleichtern. So können Sie Anforderungen korrekt entsprechend den Merkmalen der eingehenden URL umleiten.

Definieren Sie Token in Umleitungsregeln für URLs mit dem folgenden Format in der Datei redirects.json.

{
         "tokenDefinitions":
         [
                {
                        "token": "sitePrefix",
                        "type": "hostmatch",
                        "expresion": "example.com"
                        "value": ""
                },
                {
                        "token": "sitePrefix",
                        "type": "hostmatch",
                        "expresion": "*.com"
                        "value": "/site/Starter-Site"
                },
                {
                        "token": "gotoRedirect",
                        "type": "pathmatch",
                        "expresion": "*oracle*"
                        "value": "https://www.oracle.com"
                        "flags": "caseinsensitive"
                },              
        ]
}

Die tokenDefinitions haben folgende Eigenschaften:

  • "token": Der Name des zu definierenden Tokens.

  • "type": Einer der folgenden Typen:

    • "hostmatch" zum Abgleich des Hostwertes der eingehenden URL.

    • "pathmatch" zum Abgleich des Pfadnamenswertes der eingehenden URL.

    • "querymatch" zum Abgleich des Abfragewertes der eingehenden URL.

  • "expression": Der Ausdruck für den Abgleich. Platzhalterzeichen werden unterstützt.

  • "value": Der für das Token zu verwendende Wert.

  • "flags": Beim Ausdrucksabgleich wird standardmäßig nicht die Groß-/Kleinschreibung beachtet, es sei denn, der flags-Wert ist auf caseinsensitive gesetzt

Das tokenDefinitions-Array wird beim Berechnen des Wertes eines Tokens der jeweiligen Reihenfolge nach aufgezählt. Die erste übereinstimmende Definition wird verwendet. Wenn keine Tokendefinitionen übereinstimmen, wird stattdessen eine leere Zeichenfolge verwendet. Platzieren Sie für schnellere Performance häufig verwendete Token oben in der tokenDefinitions-Liste.

Die tokenDefinitions weisen folgende Constraints auf:

  • Sie können bis zu 250 Tokendefinitionen erstellen.

  • Der token-Name muss weniger als 100 Zeichen enthalten.

  • Der expression-Wert kann bis zu 10 Platzhalter umfassen.

  • Der expression-Wert muss weniger als 1000 Zeichen enthalten.

  • Der value-Wert muss weniger als 1000 Zeichen enthalten.

Beispiel

Beispiel: Sie verwenden die folgende redirects.json-Datei:

{
         "redirectRules":
         [
                {
                        "type": "string",
                        "expression": "/legacy-privacy-policy.html",
                        "location": "<$pathPrefix$>/about/new-privacy-policy.html"
                },              
        ]
         "tokenDefinitions":
         [
                {
                        "token": "pathPrefix",
                        "type": "hostmatch",
                        "expression": "vanity.com"
                        "value": "/fashion"
                },                                              
        ]
}

In diesem Fall weist die location-Eigenschaft der Regel ein <$pathPrefix$>-Token auf. Das pathPrefix-Token ist im Abschnitt tokenDefinitions definiert. Wenn die eingehende URL "vanity.com" entspricht, wird der pathPrefix-Wert auf /fashion gesetzt. Dieser Wert wird in der location-Antwort verwendet und ergibt somit /fashion/about/new-privacy-policy.html.

Angenommen, die erste Vanity-Domain-URL lautet http://example.com/legacy-privacy-policy.html. Diese würde mit der ersten und einzigen Umleitungsregel übereinstimmen.

Der deklarierte location-Wert für diese Regel lautet <$pathPrefix$>/about/new-privacy-policy.html. In diesem Fall muss das <$pathPrefix$>-Token ausgewertet werden. Dazu wird das tokenDefinitions-Array aufgezählt und nach einer Übereinstimmung gesucht.

Die erste Tokendefinition wird geprüft. Das zugehörige token ist das gewünschte Token und wird daher weiter ausgewertet. Der Ausdruck vanity.com stimmt nicht mit dem Teil example.com der eingehenden URL überein. Daher erfüllt diese Definition nicht die Anforderungen, und die Aufzählung wird fortgesetzt.

In diesem Beispiel gibt es keine weiteren Tokendefinitionen. Daher wird die leere Zeichenfolge als Wert des <$pathPrefix$>-Tokens verwendet. Der endgültige location-Wert, der für diese Umleitung zurückgegeben wird, lautet /about/new-privacy-policy.html.

Angenommen, die zweite Vanity-Domain-URL lautet http://vanity.com/legacy-privacy-policy.html. Wie bei der ersten URL lautet der deklarierte location-Wert für diese Regel <$pathPrefix$>/about/new-privacy-policy.html. In diesem Fall muss das <$pathPrefix$>-Token ausgewertet werden. Dazu wird das tokenDefinitions-Array aufgezählt und nach einer Übereinstimmung gesucht.

Die erste Tokendefinition wird geprüft. Auch hier ist das zugehörige token das gewünschte Token, das daher weiter ausgewertet wird. Der Ausdruck vanity.com stimmt mit dem Teil vanity.com der eingehenden URL überein. Daher erfüllt diese Definition die Anforderungen, und der Wert /fashion wird als Tokenwert verwendet.

Da eine Übereinstimmung für das Token gefunden wurde, wird die Aufzählung der Tokendefinitionen im Array gestoppt, und als endgültiger location-Wert wird /fashion/about/new-privacy-policy.html berechnet.

Siteumleitungen testen

Sie können Siteumleitungen beim Bearbeiten einer Site testen, indem Sie den Bereich Einstellungen öffnen und auf Umleitungen klicken. Geben Sie die zu testende URL ein, und klicken Sie auf Testen.

Bereich für Umleitungstests