맵 다시 작성

재작성 맵은 기본적으로 300초마다 Apache HTTP 서버에 의해 다시 로드됩니다(변경된 경우)(값은 구성 가능). 파일 형식은 Apache 설명서에 설명된 일반 텍스트 키-값 맵 RewriteMap 파일 형식을 따라야 합니다.

다시 작성 맵 파일의 위치를 지정하려면 이름이 managed-rewrite-maps.yaml인 파일을 만들어야 하며 Cloud Manager 전체 스택 파이프라인 또는 웹 계층 파이프라인을 사용하여 한 번 배포해야 합니다. Dispatcher 구성의 src/opt-in 폴더에 파일을 만들어야 합니다. 유연한 모드 파일 구조를 사용해야 합니다.

다음 패턴으로 구성할 수 있습니다.

maps:
- name: my.map
  path: <path-in-publish-repository>/redirectmap.txt

예를 들어 맵 다시 작성 파일을 배치하기 위해 선택한 메서드가 맵 파일을 mysite-redirectmap.txt(이)라는 자산으로 AEM에 수집한 다음 게시하는 경우 /content/dam 아래에 폴더를 지정할 수 있습니다.

maps:
- name: my.map
  path: /content/dam/redirectmaps/mysite-redirectmap.txt

그런 다음 rewrites/rewrite.rules 또는 <yourfile>.vhost과(와) 같은 Apache 구성 파일에서 이름 속성(my.map(위의 샘플에서)이 참조하는 맵 파일을 구성해야 합니다. 로드되면 이 맵 파일은 fixed 위치 /tmp/rewrites/의 Dispatcher 로컬 저장소에 저장됩니다.

RewriteMap 지시문은 데이터가 sdbm(단순 DBM) 형식을 사용하여 데이터베이스 관리자(DBM) 파일 형식으로 저장되었고 전체 파일 경로가 저장소 위치 접두사 및 이름 속성에서 파생되었음을 나타내야 합니다.

나머지 구성은 redirectmap.txt의 형식에 따라 다릅니다. 아래 샘플에 표시된 가장 간단한 형식은 원본 URL과 매핑된 URL 간의 일대일 매핑입니다.

# RewriteMap from managed rewrite maps
RewriteMap map.foo dbm=sdbm:/tmp/rewrites/my.map
RewriteCond ${map.foo:$1} !=""
RewriteRule ^(.*)$ ${map.foo:$1|/} [L,R=301]

고려 사항

다음 사항에 유의하십시오.

  • 기본적으로 다시 작성 맵을 로드할 때 전체 맵 파일이 로드될 때까지 기다리지 않고 Apache가 시작되므로 전체 맵이 로드될 때까지 일시적으로 불일치가 발생할 수 있습니다. Apache가 전체 맵 콘텐츠가 로드될 때까지 기다리도록 이 설정을 변경할 수 있지만 Apache가 시작하는 데에는 더 오랜 시간이 걸립니다. Apache가 대기하도록 이 동작을 변경하려면 wait:true을(를) managed-rewrite-maps.yaml 파일에 추가하십시오.
  • 로드 빈도를 변경하려면 ttl: <integer>을(를) managed-rewrite-maps.yaml 파일에 추가하십시오. 예: ttl: 120.
  • Apache에는 RewriteMap 단일 항목에 대해 1024 길이 제한이 있습니다.

Experience Manager