2017-11-17 1 views
1

crafter (3.0)에 URL 매핑 기능이 있는지 궁금합니다. 예를 들어Crafter 3.0에서 URL 매핑을 수행하는 방법

/site/website/foobar/mycontent/index.xml 같은 주어진 경로에서 콘텐츠를하고, 해당 URL (그들은 자동으로 스튜디오에서 -로 변환 이후 file-name 필드에 사용할 수 없습니다 추가 / 통지) /news/2017/11/17/my-content 서비스를 제공합니다.

감사합니다,

니콜라스

답변

2

라우터 로드맵 (https://github.com/craftercms/craftercms/issues/1622)에 내장,하지만 지금, 당신은 쉽게 당신의 청사진에 하나를 추가 할 수 있습니다

  1. 이 구성 요소 만들기 "라우팅 테이블"을 포함합니다. 이 구성 요소 에는 반복 표가 있으며 각 항목은 인바운드 URL이고 아웃 바운드 URL입니다.
  2. 모든 호출을 가로채는 Groovy 필터 스크립트를 만들고 이 URL이 인바운드 URL 중 하나와 일치하는지 확인합니다. 이 경우 은 요청을 해당 아웃 바운드 URL로 전달합니다.

    def routingTableItem = siteItemService.getSiteItem("/site/components/system/routing-table.xml") 
    def routingTable = routingTableItem.urlRoutingTable.item 
    def currentURL = request.requestURI 
    
    def matchedEntry = routingTable.find { entry -> 
        return currentURL == entry.inboundURL.text 
    } 
    
    if (matchedEntry) { 
        def inboundURL = matchedEntry.inboundURL.text 
        def outboundURL = matchedEntry.outboundURL.text 
    
        logger.info("Forwarding URL ${inboundURL} to ${outboundURL}") 
    
        request.getRequestDispatcher(outboundURL).forward(request, response) 
    } else { 
        filterChain.doFilter(request, response) 
    } 
    
: 다음과 같은 필터의 가능 코드는
관련 문제