JSON 파일에 URL 재지정 규칙을 지정할 수 있습니다.
다음 형식을 JSON 파일에 사용하여 URL 재지정 규칙을 지정하십시오.
{ "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 파일의 바깥쪽 포함 구조는 배열입니다. 배열에는 규칙 인스턴스가 포함됩니다.
"string"
규칙이 먼저 평가되고 이어서 "wildcard"
규칙이 순서대로 평가됩니다. 규칙 중 하나가 일치하면 후속 규칙 평가가 중단되고 해당하는 재지정이 생성됩니다.
각 규칙에는 다음 속성이 있습니다.
"comment"
속성은 규칙 평가에 영향을 주지 않는 선택적 문자열입니다. 메모 또는 주석이 포함됩니다.
"expression"
속성은 수신 사이트-상대 URL과 일치시키는 필수 문자열입니다. 와일드 카드 문자 규칙에서 별표(*
) 토큰은 0개 이상의 문자와 일치합니다.
"location"
속성은 재지정 위치 또는 목적지를 나타내는 필수 문자열입니다. 재지정은 전체 또는 상대 URL일 수 있습니다.
"code"
속성은 재지정을 실행할 때 사용할 HTTP 응답 코드를 제공하는 선택적 정수입니다. 값은 다음 정수 중 하나여야 합니다.
301: 리소스가 영구적으로 이동되었음을 나타냅니다. "code"
속성이 생략된 경우 기본값입니다.
302: 리소스가 일시적으로 이동되었음을 나타냅니다.
"type" 속성은 재지정 규칙의 유형을 나타내는 선택적 문자열입니다. 값은 다음 문자열 중 하나여야 합니다.
"string"
은 표현식이 전체 입력 URL과 정확히 일치하는 빠른 규칙을 지정합니다.
"wildcard"
는 수많은 URL과 일치할 수 있는 와일드 카드 문자 규칙을 지정합니다. 속성이 생략된 경우 기본값입니다.
위치 토큰
위치 토큰을 사용하여 재지정 위치를 설계할 수 있습니다. 다음의 각 위치 토큰은 재지정을 지정하는 데 도움이 됩니다.
<$urlPath$>
: 일치 URL의 경로 부분입니다.
<$urlQueryString$>
: 일치 URL의 전체 URL 질의 문자열입니다.
<$urlQueryStringExcept(name1,name2)$>
: 일치 URL의 전체 URL 질의 문자열에서 명명된 매개변수를 뺀 값입니다.
<$wildcard(N)$>
: 일치 URL에서 일치 와일드 카드 문자의 1부터 시작하는 인덱스입니다. (정규 표현식의 \1..\9
와 비슷합니다.)
<$name$>
: 명명된 질의 문자열 매개변수의 값입니다. 예를 들어, 입력 시 질의 문자열 msmith: ?page=42
가 있으면 위치에 <$page$>
를 사용하여 '42'
를 위치에 넣을 수 있습니다.
제한사항
다음 제한사항은 redirects.json
파일 전체와 파일에 포함된 규칙에 적용됩니다.
Oracle Content Management에서 허용된 최대 전체 파일 크기는 250KB입니다.
redirects.json
파일의 최대 규칙 수는 1,000개입니다.
규칙의 최대 "expression"
길이는 1,000자입니다.
규칙의 최대 "location"
길이는 2,000자입니다.
와일드 카드 문자 규칙 표현식의 최대 '*'
토큰 수는 10개입니다.
문자열 일치 예제
규칙:
{ "type": "string", "expression": "/old/page.jsp?id=material&type=glass", "location": "/new/<$id$>.htm" }
다음 URL은 규칙과 일치합니다.
/old/page.jsp?id=material&type=glass
결과 위치는 /new/material.htm
입니다.
질의 문자열을 포함한 전체 URL이 일치합니다.
<$id$>
가 위치에 사용되지만 가능한 질의 문자열이 하나만 일치할 수 있으므로 이 예제에는 필요하지 않습니다. 위치는 /new/material.htm
으로 작성되었을 수 있습니다.
다음 URL은 규칙과 일치하지 않습니다.
/old/page.jsp
(규칙 표현식은 일치시킬 질의 문자열을 제공합니다.)
/old/page.jsp?id=material&type=glass&index=2
(후보 URL의 추가 &index=2
는 규칙 표현식과 정확히 일치하지 않습니다.)
/old/page.jsp?type=glass&id=material
(질의 문자열 매개변수의 순서는 “string” 규칙에서 일치해야 합니다.)
와일드 카드 문자 일치 예제
규칙:
{ "type": "wildcard", "expression": "/old/*/pages/*?id=*&item=sheet-*", "location": "/new/<$id$>/<$wildcard(4)$>.html" }
다음 URL은 규칙과 일치합니다.
/old/phones/android/pages/info.asp?id=XT1045&item=sheet-specs
결과 위치는 /new/XT1045/specs.html
입니다.
URL의 경로 부분이 일치하므로 일치 조건에 대해 질의 문자열도 검사됩니다.
이 예제의 매개변수는 규칙 표현식과 매개변수 순서가 일치하지만 이것이 필수는 아닙니다.
/old/phones/android/pages/info.asp?item=sheet-specs&id=XT1045
결과 위치는 /new/XT1045/specs.html
입니다.
URL의 경로 부분이 물음표(?
) 앞의 규칙 표현식과 일치하므로 매개변수도 일치하는지 검사합니다.
규칙 표현식에서 매개변수가 다른 순서로 나열되어 있지만 매개변수는 개별적으로 일치합니다.
/old/phones/android/pages/info.asp?id=XT1045&item=sheet-specs&unrelated=thing
결과 위치는 /new/XT1045/specs.html
입니다.
URL의 경로 부분이 일치하므로 일치 조건에 대해 질의 문자열도 검사됩니다.
후보 URL에 추가 &unrelated=thing
매개변수가 있지만 규칙 표현식에 명명된 질의 매개변수가 일치하므로 규칙이 일치하는 것으로 간주됩니다.
unrelated
매개변수는 위치에서 <$unrelated$>
와 같이 토큰으로 사용 가능하며 규칙 일치에 기여하지 않더라도 thing
값을 갖습니다.
다음 URL은 일치하지 않습니다.
/old/pages/info.jsp
(URL의 경로 부분이 규칙 표현식의 경로 부분과 일치하지 않습니다.)
/old/phones/android/pages/info.asp
(URL의 경로 부분이 규칙 표현식의 경로 부분과 일치하지만, 규칙 표현식의 질의 매개변수가 일치하지 않습니다.)
/old/phones/android/pages/info.asp?id=cellular
(URL의 경로 부분이 규칙 표현식의 경로 부분과 일치하지만, 규칙 표현식의 모든 질의 매개변수가 일치하지는 않습니다.)
토큰 배열 정의
여러 vanity URL을 지원하는 재지정을 구성할 때 유용하도록 redirects.json
파일 내에 토큰 정의 배열을 생성할 수도 있습니다. 그러면 수신 URL의 특성에 따라 적절히 재지정할 수 있습니다.
다음 형식을 redirects.json
파일에 사용하여 재지정 규칙 URL에서 사용할 토큰을 정의하십시오.
{ "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에는 다음 속성이 있습니다.
"token"
: 정의할 토큰의 이름입니다.
"type"
: 다음 중 하나입니다.
"hostmatch"
- 수신 URL의 호스트 값과 일치합니다.
"pathmatch"
- 수신 URL의 경로명 값과 일치합니다.
"querymatch"
- 수신 URL의 질의 값과 일치합니다.
"expression"
: 일치에 사용되는 표현식입니다. 와일드 카드 문자가 지원됩니다.
"value"
: 토큰에 사용되는 값입니다.
"flags"
: flags
값이 caseinsensitive
로 설정되지 않는 한, 기본적으로 표현식 일치는 대소문자를 구분합니다.
토큰 값을 계산할 때 tokenDefinitions
배열이 순서대로 열거됩니다. 첫번째 일치하는 정의가 사용됩니다. 토큰 정의가 토큰을 충족하지 않으면 대신 빈 문자열이 사용됩니다. 편의상 성능을 위해 자주 사용되는 토큰이 tokenDefinitions
목록의 맨 위에 놓여야 합니다.
tokenDefinitions
에는 다음 제약 조건이 있습니다.
최대 250개의 토큰 정의를 생성할 수 있습니다.
token
이름은 100자 미만이어야 합니다.
expression
은 최대 10개의 와일드 카드 문자를 포함할 수 있습니다.
expression
은 1000자 미만이어야 합니다.
value
는 1000자 미만이어야 합니다.
예제
예를 들어, 다음 redirects.json 파일이 있을 수 있습니다.
{ "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" }, ] }
이 경우 규칙의 location
속성에 <$pathPrefix$>
토큰이 있습니다. pathPrefix
토큰은 tokenDefinitions
섹션에 정의됩니다. 수신 URL이 "vanity.com"과 일치하면 pathPrefix
값은 /fashion
으로 설정됩니다. 이는 location
응답에 사용되며 결과적으로 /fashion/about/new-privacy-policy.html
이 됩니다.
첫번째 vanity 도메인 URL이 http://example.com/legacy-privacy-policy.html
이라고 가정해 보겠습니다. 이것은 첫번째이자 유일한 재지정 규칙과 일치합니다.
이 규칙에 대해 선언된 location
은 <$pathPrefix$>/about/new-privacy-policy.html
입니다. 이 상황에서 <$pathPrefix$>
토큰을 평가해야 합니다. 이를 위해 tokenDefinitions
배열이 열거되어 일치항목을 찾습니다.
첫번째 토큰 정의가 고려됩니다. token
이 원하는 토큰이므로 더 평가됩니다. 표현식 vanity.com
이 수신 URL의 example.com
과 일치하지 않으므로 이 정의는 요구사항을 충족하지 않으며 열거가 계속됩니다.
이 시점에서 더 이상 토큰 정의가 없으므로 <$pathPrefix$>
토큰 값에 빈 문자열이 사용됩니다. 이 재지정으로 반환된 최종 위치는 /about/new-privacy-policy.html
입니다.
두번째 vanity 도메인 URL이 http://vanity.com/legacy-privacy-policy.html
이라고 가정해 보겠습니다. 첫번째 URL과 마찬가지로 이 규칙에 대해 선언된 location
은 <$pathPrefix$>/about/new-privacy-policy.html
입니다. 이 상황에서 <$pathPrefix$>
토큰을 평가해야 합니다. 이를 위해 tokenDefinitions
배열이 열거되어 일치항목을 찾습니다.
첫번째 토큰 정의가 고려됩니다. 이전처럼 token
이 원하는 토큰이므로 더 평가됩니다. 표현식 vanity.com
이 수신 URL의 vanity.com
과 일치하므로 이 정의는 요구사항을 충족하며 /fashion
값이 토큰 값으로 사용됩니다.
토큰의 일치항목을 찾았으므로 토큰 정의 배열의 열거가 정지되고 최종 위치는 /fashion/about/new-privacy-policy.html
로 계산됩니다.
사이트 재지정 테스트
사이트를 편집할 때 설정 패널을 열고 재지정을 눌러 사이트 재지정을 테스트할 수 있습니다. 테스트할 URL을 입력하고 테스트를 누릅니다.