Du kan angi omdirigeringsregler for URL-adresser i en JSON-fil.
Bruk følgende format i en JSON-fil til å angi omdirigeringsregler for URL-adresser.
{ "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 } ] }
Den ytre innholdsstrukturen i JSON-filen er en matrise. Matrisen inneholder regelforekomster.
Først evalueres string
-reglene, fulgt av wildcard
-reglene, i ordnet rekkefølge. Når én av reglene samsvarer, avbrytes evalueringen av påfølgende regler, og den tilsvarende omdirigeringen genereres.
Hver regel har følgende egenskaper:
Egenskapen comment
er en valgfri streng som ikke påvirker evalueringen av reglene. Den omfatter merknader eller en kommentar.
Egenskapen expression
er en obligatorisk streng som samsvarer med en innkommende områderelativ URL-adresse. I en jokertegnregel samsvarer stjernen (*
) med null eller flere tegn.
Egenskapen location
er en obligatorisk streng som angir plasseringen av eller målet for omdirigeringen. Omdirigeringen kan være en fullstendig eller relativ URL-adresse.
Egenskapen code
er et valgfritt heltall som angir HTTP-svarkoden som skal brukes ved utstedelse av omdirigeringen. Verdien må være ett av følgende heltall:
301 angir at ressursen er flyttet permanent. Dette er standardverdien hvis egenskapen code
er utelatt.
302 angir at ressursen er flyttet midlertidig.
Egenskapen type er en valgfri streng som angir typen omdirigeringsregel. Verdien må være én av følgende strenger:
string
angir en raskere regel med et uttrykk som samsvarer direkte med hele inndata-URL-adressen.
wildcard
angir en jokertegnregel som kan samsvare med flere URL-adresser. Dette er standardverdien hvis egenskapen er utelatt.
Plasseringssymboler
Du kan bruke plasseringssymboler som hjelp til å produsere en omdirigert plassering. Hver av følgende plasseringssymboler kan bidra til å angi en omdirigering:
<$urlPath$>
: banedelen av den samsvarende URL-adressen.
<$urlQueryString$>
: hele URL-spørringsstrengen fra den samsvarende URL-adressen.
<$urlQueryStringExcept(name1,name2)$>
: hele URL-spørringsstrengen fra den samsvarende URL-adressen, minus de navngitte parametrene.
<$wildcard(N)$>
: den én-baserte indeksen for det samsvarende jokertegnet i den samsvarende URL-adressen. (Dette er analogt med \1..\9
i regulære uttrykk.)
<$name$>
: verdien av den navngitte spørringsstrengparameteren. Hvis du for eksempel har spørringsstrengen msmith: ?page=42
i inndataene, kan du bruke <$page$>
i plasseringen til å plassere '42'
i plasseringen.
Begrensninger
Følgende begrensninger gjelder for filen redirects.json
som helhet og for reglene den inneholder:
Den største totale filstørrelsen som godtas av Oracle Content Management, er 250 kB.
Det maksimale antall regler i filen redirects.json
er 1 000.
Den maksimale lengden på expression
for en regel er 1 000 tegn.
Den maksimale lengden på location
for en regel er 2 000 tegn.
Det maksimale antall *
-symboler i et jokertegnuttrykk er 10.
Eksempel på samsvarende streng
Regel:
{ "type": "string", "expression": "/old/page.jsp?id=material&type=glass", "location": "/new/<$id$>.htm" }
Følgende URL-adresse samsvarer med regelen:
/old/page.jsp?id=material&type=glass
Den resulterende plasseringen blir /new/material.htm
Hele URL-adressen samsvarer, inkludert spørringsstrengen.
Selv om <$id$>
brukes i plasseringen, er det ikke nødvendig for dette eksemplet fordi bare én mulig spørringsstreng kan samsvare. Plasseringen kan være skrevet som /new/material.htm
.
Følgende URL-adresser samsvarer ikke med regelen:
/old/page.jsp
(Regelens uttrykk gir en spørringsstreng som må samsvare.)
/old/page.jsp?id=material&type=glass&index=2
(Den ekstra &index=2
i kandidatens URL-adresse samsvarer ikke fullstendig med regeluttrykket.)
/old/page.jsp?type=glass&id=material
(Rekkefølgen på parametrene i spørringsstrengen må samsvare i en string-regel.)
Eksempel på samsvarende jokertegn
Regel:
{ "type": "wildcard", "expression": "/old/*/pages/*?id=*&item=sheet-*", "location": "/new/<$id$>/<$wildcard(4)$>.html" }
Følgende URL-adresser samsvarer med regelen:
/old/phones/android/pages/info.asp?id=XT1045&item=sheet-specs
Den resulterende plasseringen blir /new/XT1045/specs.html
Banedelen av URL-adressen samsvarer, så spørringsstrengen blir også undersøkt for samsvarende betingelser.
Parametrene i dette eksemplet samsvarer tilfeldigvis med rekkefølgen på parametrene i regeluttrykket, men det er ikke nødvendig.
/old/phones/android/pages/info.asp?item=sheet-specs&id=XT1045
Den resulterende plasseringen blir /new/XT1045/specs.html
Banedelen av URL-adressen samsvarer med regeluttrykket før spørsmålstegnet (?
), så det kontrolleres også om parametrene samsvarer.
Selv om parametrene vises i en annen rekkefølge i regeluttrykket, sammenlignes de enkeltvis.
/old/phones/android/pages/info.asp?id=XT1045&item=sheet-specs&unrelated=thing
Den resulterende plasseringen blir /new/XT1045/specs.html
Banedelen av URL-adressen samsvarer, så spørringsstrengen blir også undersøkt for samsvarende betingelser.
Kandidat-URL-en har en ekstra &unrelated=thing
-parameter, men siden de navngitte spørringsparametrene i regeluttrykket samsvarer, blir regelen bedømt som samsvarende.
Parameteren unrelated
er tilgjengelig i plasseringen som et symbol, som <$unrelated$>
, og får verdien thing
, selv om den ikke bidrar til regelens samsvar.
Følgende URL-adresser samsvarer ikke:
/old/pages/info.jsp
(Banedelen av URL-adressen samsvarer ikke med banedelen i regeluttrykket.)
/old/phones/android/pages/info.asp
(Banedelen av URL-adressen samsvarer med banedelen av regeluttrykket, men spørringsparametrene i regeluttrykket samsvarer ikke.)
/old/phones/android/pages/info.asp?id=cellular
(Banedelen av URL-adressen samsvarer med banedelen av regeluttrykket, men alle spørringsparametrene i regeluttrykket samsvarer ikke.)
Definere en symbolmatrise
Du kan også opprette en matrise av symboldefinisjoner i filen Redirects.json
som skal være til hjelp når du konfigurerer omdirigeringer som støtter flere personlige URL-adresser. På denne måten kan du omdirigere på riktig måte basert på kjennetegnene til den innkommende URL-adressen.
Bruk følgende format i filen redirects.json
hvis du vil definere symboler som skal brukes i URL-adresser for omdirigeringsregler.
{ "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" }, ] }
tokenDefinitions har følgende egenskaper:
"token"
: Navnet på symbolet som skal defineres.
"type"
: Ett av følgende:
"hostmatch"
for samsvar med vertsverdien for den innkommende URL-adressen.
"pathmatch"
for samsvar med banenavnverdien for den innkommende URL-adressen.
"querymatch"
for samsvar med spørringsverdien for den innkommende URL-adressen.
"expression"
: Uttrykket som skal brukes for samsvar Jokertegn støttes.
"value"
: Verdien som skal brukes for symbolet.
"flags"
: Som standard skiller uttrykkssamsvar mellom store og små bokstaver, med mindre verdien flags
er satt til caseinsensitive
Ved beregning av verdien for et symbol blir tokenDefinitions
-matrisen nummerert i rekkefølge. Den første samsvarende definisjonen blir brukt. Hvis ingen symboldefinisjoner tilfredsstiller symbolet, brukes i stedet en tom streng. Det er hensiktsmessig og praktisk å plassere vanlige symboler øverst i listen tokenDefinitions
.
tokenDefinitions
har følgende restriksjoner:
Du kan opprette opptil 250 symboldefinisjoner.
token
-navnet må være kortere enn 100 tegn.
expression
kan ha opptil 10 jokertegn.
expression
må være kortere enn 1000 tegn.
value
må være kortere enn 1000 tegn.
Eksempel
Du kan for eksempel ha følgende redirects.json-fil:
{ "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" }, ] }
I dette tilfellet har regelens location
-egenskap et <$pathPrefix$>
-symbol. Symbolet pathPrefix
er definert i delen tokenDefinitions
. Hvis den innkommende URL-adressen samsvarer med "vanity.com", blir verdien pathPrefix
satt til /fashion
. Denne blir brukt i location
-svaret, med resultatet /fashion/about/new-privacy-policy.html
.
La oss anta at den første personlige URL-adressen for domenet er http://example.com/legacy-privacy-policy.html
. Dette gir samsvar med den første og eneste regelen for omdirigering.
Deklarert location
for denne regelen er <$pathPrefix$>/about/new-privacy-policy.html
. I dette tilfellet må symbolet <$pathPrefix$>
evalueres. Dette muliggjøres ved å nummerere matrisen tokenDefinitions
for å finne samsvar.
Den første symboldefinisjonen vurderes. Tilhørende token
er det ønskede symbolet, og derfor evalueres det ytterligere. Uttrykket vanity.com
samsvarer ikke med example.com
for den innkommende URL-adressen. Derfor oppfyller ikke denne definisjonen kravene, og nummereringen fortsetter.
På dette tidspunktet er det ikke flere symboldefinisjoner, og den tomme strengen brukes til verdien for <$pathPrefix$>
-symbolet. Den endelige plasseringen for denne omdirigeringen er /about/new-privacy-policy.html
.
La oss anta at den andre personlige URL-adressen for domenet er http://vanity.com/legacy-privacy-policy.html
. I likhet med den første URL-adressen er deklarert location
for denne regelen <$pathPrefix$>/about/new-privacy-policy.html
. I dette tilfellet må symbolet <$pathPrefix$>
evalueres. Dette muliggjøres ved å nummerere matrisen tokenDefinitions
for å finne samsvar.
Den første symboldefinisjonen vurderes. Som tidligere er tilhørende token
det ønskede symbolet, og derfor evalueres det ytterligere. Uttrykket vanity.com
samsvarer med den innkommende URL-adressens vanity.com
, og derfor oppfyller denne definisjonen kravene, og verdien /fashion
brukes som symbolverdi.
Fordi det ble funnet samsvar for symbolet, stopper nummereringen av symboldefinisjonsmatrisen, og den endelige plasseringen beregnes som /fashion/about/new-privacy-policy.html
.
Teste omdirigeringer for område
Du kan teste omdirigeringer for område når du redigerer et område, ved å åpne ruten Innstillinger og klikke på Omdirigeringer. Angi en URL-adresse du vil teste, og klikk på Test.