Uudelleenohjaussääntöjen määritys JSON-tiedostossa

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.

Uudelleenohjausten testipaneeli