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.