Voit määrittää URL-osoitteiden uudelleenohjaussäännöt JSON-tiedostossa.
Määritä URL-osoitteiden uudelleenohjaussäännöt seuraavassa muodossa JSON-tiedostoon.
{
"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
}
]
}
JSON-tiedoston ulompi rakenne on taulukko. Taulukko sisältää yksittäisiä sääntöjä.
"string"-säännöt arvioidaan ensin, minkä jälkeen "wildcard"-säännöt arvioidaan järjestyksessä. Jos jokin säännöistä täsmää, myöhempiä sääntöjä ei arvioida ja vastaava uudelleenohjaus luodaan.
Kullakin säännöllä on seuraavat ominaisuudet:
"comment"-ominaisuus on valinnainen merkkijono, joka ei vaikuta sääntöjen arviointiin. Se sisältää muistiinpanoja tai kommentteja.
"expression"-ominaisuus on pakollinen merkkijono. Sitä verrataan sivuston suhteelliseen saapuvaan URL-osoitteeseen. Yleismerkkisäännössä tähtimerkki (*) vastaa nollaa tai useampaa merkkiä.
"location"-ominaisuus on pakollinen merkkijono, joka ilmaisee uudelleenohjauksen sijainnin tai kohteen. Uudelleenohjaus voi olla täydellinen tai suhteellinen URL-osoite.
"code"-ominaisuus on valinnainen kokonaisluku, joka määrittää uudelleenohjauksen lähetyksessä käytettävän HTTP-vastauskoodin. Arvon on oltava jokin seuraavista kokonaisluvuista:
301: Ilmaisee, että resurssi on siirretty pysyvästi. Tämä on oletusarvo, jos "code"-ominaisuutta ei ole määritetty.
301: Ilmaisee, että resurssi on siirretty väliaikaisesti.
"type"-ominaisuus on valinnainen merkkijono, joka ilmaisee uudelleenohjaussäännön tyypin. Arvon on oltava jokin seuraavista merkkijonoista:
"string" määrittää nopean säännön, jonka lausekkeen on vastattava koko syötettyä URL-osoitetta täsmälleen.
"wildcard" määrittää yleismerkkisäännön, joka voi vastata useita URL-osoitteita. Tämä on oletusarvo, jos ominaisuutta ei ole määritetty.
Sijaintimerkit
Voit luoda uudelleenohjauksen sijainnin käyttämällä sijaintimerkkejä. Seuraavista sijaintimerkeistä on apua uudelleenohjauksen määrityksessä:
<$urlPath$>: täsmänneen URL-osoitteen polkuosa.
<$urlQueryString$>: koko URL-kyselymerkkijono täsmänneestä URL-osoitteesta.
<$urlQueryStringExcept(name1,name2)$>: koko URL-kyselymerkkijono täsmänneestä URL-osoitteesta nimettyjä parametreja lukuun ottamatta.
<$wildcard(N)$>: täsmänneen URL-osoitteen yleismerkkien vastaavuuksien järjestysnumero, joka alkaa yhdestä. (Tämä vastaa säännöllisten lausekkeiden \1..\9-merkintöjä.)
<$name$>: nimetyn kyselymerkkijonon parametrin arvo. Jos syötteenä on esimerkiksi kyselymerkkijono msmith: ?page=42, voit lisätä sijaintiin arvon '42' käyttämällä sijainnissa merkkiä <$page$>.
Rajoitukset
Seuraavat rajoitukset koskevat koko redirects.json-tiedostoa sekä sen sisältämiä sääntöjä:
Oracle Content Management -järjestelmän suurin hyväksytty tiedoston koko on 250 kt.
redirects.json-tiedostossa saa olla enintään 1 000 sääntöä.
Säännön "expression"-arvon enimmäispituus on 1 000 merkkiä.
Säännön "location"-arvon enimmäispituus on 2 000 merkkiä.
Yleismerkkisäännön '*'-merkkien enimmäismäärä on 10.
Esimerkki merkkijonojen vastaavuudesta
Sääntö:
{
"type": "string",
"expression": "/old/page.jsp?id=material&type=glass",
"location": "/new/<$id$>.htm"
}
Seuraava URL-osoite täsmää säännön kanssa:
/old/page.jsp?id=material&type=glass
Tuloksena on seuraava sijainti: /new/material.htm
Koko URL-osoite täsmää kyselymerkkijono mukaan lukien.
Vaikka <$id$>-arvoa käytetään sijainnissa, se ei ole välttämätöntä tässä esimerkissä, koska vain yksi mahdollinen kyselymerkkijono voi täsmätä säännön kanssa. Sijainniksi olisi voinut kirjoittaa /new/material.htm.
Seuraavat URL-osoitteet eivät täsmää säännön kanssa:
/old/page.jsp
(Säännön lauseke tuottaa kyselymerkkijonon, jonka on täsmättävä.)
/old/page.jsp?id=material&type=glass&index=2
(Verrattavassa URL-osoitteessa oleva ylimääräinen &index=2 ei vastaa säännön lauseketta täsmälleen.)
/old/page.jsp?type=glass&id=material
(Kyselymerkkijonon parametrien järjestyksen on täsmättävä "string"-säännöissä.)
Esimerkki yleismerkkien vastaavuudesta
Sääntö:
{
"type": "wildcard",
"expression": "/old/*/pages/*?id=*&item=sheet-*",
"location": "/new/<$id$>/<$wildcard(4)$>.html"
}
Seuraavat URL-osoitteet täsmäävät säännön kanssa:
/old/phones/android/pages/info.asp?id=XT1045&item=sheet-specs
Tuloksena on seuraava sijainti: /new/XT1045/specs.html
URL-osoitteen polkuosa täsmää, joten vastaavuuksia etsitään myös kyselymerkkijonosta.
Tämän esimerkin parametrit ovat samassa järjestyksessä kuin säännön lausekkeen parametrit, mutta tämä ei ole pakollista.
/old/phones/android/pages/info.asp?item=sheet-specs&id=XT1045
Tuloksena on seuraava sijainti: /new/XT1045/specs.html
URL-osoitteen polkuosa vastaa säännön lausekkeen kysymysmerkkiä (?) edeltävää osaa, joten myös parametrien vastaavuus tarkistetaan.
Parametrit ovat eri järjestyksessä säännön lausekkeessa, mutta parametrien vastaavuus tarkistetaan yksitellen.
/old/phones/android/pages/info.asp?id=XT1045&item=sheet-specs&unrelated=thing
Tuloksena on seuraava sijainti: /new/XT1045/specs.html
URL-osoitteen polkuosa täsmää, joten vastaavuuksia etsitään myös kyselymerkkijonosta.
Verrattavassa URL-osoitteessa on ylimääräinen &unrelated=thing-parametri, mutta koska säännön lausekkeen nimetyt kyselyparametrit täsmäävät, säännön katsotaan täsmäävän.
unrelated-parametri olisi tässä tapauksessa käytettävissä sijainnissa <$unrelated$>-merkkinä ja sen arvo olisi thing, vaikka se ei vaikuttanut säännön vastaavuuteen.
Seuraavat URL-osoitteet eivät täsmää:
/old/pages/info.jsp
(URL-osoitteen polkuosa ei vastaa säännön lausekkeen polkuosaa.)
/old/phones/android/pages/info.asp
(URL-osoitteen polkuosa vastaa säännön lausekkeen polkuosaa, mutta säännön lausekkeen kyselyparametrit eivät täsmää.)
/old/phones/android/pages/info.asp?id=cellular
(URL-osoitteen polkuosa vastaa säännön lausekkeen polkuosaa, mutta kaikki säännön lausekkeen kyselyparametrit eivät täsmää.)
Merkkitaulukon määritys
Voit myös luoda merkkimääritysten taulukon redirects.json-tiedostoon. Se on hyödyllinen konfiguroitaessa uudelleenohjauksia, joissa tuetaan useita vaihtoehtoisia URL-osoitteita. Siten voit suorittaa uudelleenohjauksen oikein saapuvan URL-osoitteen ominaisuuksien perusteella.
Käytä seuraavaa muotoa redirects.json-tiedostossa, jotta voit määrittää merkkejä uudelleenohjaussääntöjen URL-osoitteissa.
{
"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-kohteilla on seuraavat ominaisuudet:
"token": määritettävän merkin nimi.
"type": jokin seuraavista:
"hostmatch" saapuvan URL-osoitteen pääkoneen arvon vastaavuusmääritystä varten.
"pathmatch" saapuvan URL-osoitteen polun nimen arvon vastaavuusmääritystä varten.
"querymatch" saapuvan URL-osoitteen kyselyn arvon vastaavuusmääritystä varten.
"expression": Vastaavuusmäärityksessä käytettävä lauseke. Yleismerkkejä tuetaan.
"value": merkissä käytettävä arvo.
"flags": lausekkeen vastaavuusmäärityksessä otetaan oletusarvoisesti huomioon kirjainkoko, paitsi jos kohdassa flags arvoksi on määritetty caseinsensitive
Merkin arvoa laskettaessa tokenDefinitions-taulukko luetteloidaan järjestyksessä. Käytetään ensimmäistä vastaavaa määritystä. Jos yksikään merkkimääritys ei vastaa merkkiä, käytetään tyhjää merkkijonoa. Tarkoituksenmukaisuuden ja suorituskyvyn takaamiseksi usein käytetyt merkit kannattaa sijoittaa tokenDefinitions-listan kärkeen.
tokenDefinitions-kohteilla on seuraavia rajoituksia:
Voit luoda enintään 250 merkkimääritystä.
token-kohteen nimessä on oltava alle 100 merkkiä.
expression-kohteessa voi olla enintään 10 yleismerkkiä.
expression-kohteessa on oltava alle 1000 merkkiä.
value-kohteessa on oltava alle 1000 merkkiä.
Esimerkki
Sinulla voi olla esimerkiksi seuraava redirects.json-tiedosto:
{
"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"
},
]
}
Tässä tapauksessa location-ominaisuudella on <$pathPrefix$>-merkki. pathPrefix-merkki on määritetty tokenDefinitions-osassa. Jos saapuva URL-osoite vastaa toimialuetta "vanity.com", pathPrefix-kohteen arvoksi määritetään /fashion. Sitä käytetään location-vastauksessa, ja tuloksena on /fashion/about/new-privacy-policy.html.
Oletetaan, että ensimmäinen henkilökohtaisen toimialueen URL-osoite on http://example.com/legacy-privacy-policy.html. Se vastaisi ensimmäistä ja ainoaa uudelleenohjaussääntöä.
Tämän säännön määritetty location on <$pathPrefix$>/about/new-privacy-policy.html. Tässä tapauksessa <$pathPrefix$>-merkki on arvioitava. Sitä varten tokenDefinitions-taulukko on luetteloitava vastaavuuden löytämiseksi.
Ensimmäinen merkkimääritys otetaan huomioon. Jos token on sopiva, sen arviointia jatketaan. Lausekkeen vanity.com ei vastaa saapuvaa URL-osoitteen toimialuetta example.com, joten tämä määritys ei täytä vaatimuksia, ja luettelointia jatketaan.
Tässä vaiheessa ei merkkimäärityksiä ei ole enempää, joten <$pathPrefix$>-merkin arvolle käytetään tyhjää merkkijonoa. Viimeinen tälle uudelleenohjaukselle palautettu sijainti on /about/new-privacy-policy.html.
Oletetaan, että toinen henkilökohtainen toimialueen URL-osoite on http://vanity.com/legacy-privacy-policy.html. Kuten ensimmäisenkin URL-osoitteen kohdalla, tämän säännön määritetty location-kohteen arvo on <$pathPrefix$>/about/new-privacy-policy.html. Tässä tapauksessa <$pathPrefix$>-merkki on arvioitava. Sitä varten tokenDefinitions-taulukko on luetteloitava vastaavuuden löytämiseksi.
Ensimmäinen merkkimääritys otetaan huomioon. Nytkin token on sopiva, joten sen arviointia jatketaan. Lausekkeen vanity.com vastaa saapuvan URL-osoitteen toimialuetta vanity.com, joten tämä määritys täyttää vaatimukset, ja merkin arvona käytetään arvoa /fashion.
Koska merkille löytyi vastaavuus, merkkimääritystaulukon luettelointi keskeytetään, ja lopulliseksi sijainniksi lasketaan /fashion/about/new-privacy-policy.html.
Sivuston uudelleenohjausten testaus
Voit testata sivuston uudelleenohjaukset sivuston muokkauksen yhteydessä avaamalla Asetukset-paneelin ja valitsemalla Uudelleenohjaukset. Syötä testattava URL-osoite ja valitse Testaa.
