2012-02-10 3 views
1

내 페이지에 재 쓰기 나는 다음 다시 쓰기 규칙이있다 :스칼라 리프트 - URL 폴더

LiftRules.statelessRewrite.prepend(NamedPF("AppRewrite") { 

     case RewriteRequest(

      ParsePath(List("room", room, user), _, _, _), _, _) => 

       RewriteResponse(List("room"), 

        Map("room" -> room, "user" -> user) 

       ) 

}) 

http://xx.xx.xx.xx/room/[room_id]/[user_id] 

장전 HTML 페이지를 할 수있는에 웹 애플리케이션의 루트 (예 : 웹 애플리케이션/room.html)

내가 방 후 다른 매개 변수를 추가한다 할 노력하고있어, 그래서

을 가질 수 있습니다

webapp 루트에 room.html을로드하는 대신 페이지라는 하위 폴더에 page_id를 사용하여 페이지를로드합니다.

그래서

http://xx.xx.xx.xx/room/join/[room_id]/[user_id] 

이 어떤 도움이 사전에

webapp/pages/room/join.html 

감사를로드 할 것입니다 가질 수 많이 감사합니다 :)

답변

0

방금에 /room/join/[room_id]/[user_id]를 다시 작성하는 방법을 요구하는 경우 /pages/room/join.html 그러면 시작한 것과 동일한 URL 다시 쓰기 패턴을 따르십시오.

... // (in the same statlessRewrite.prepend block) 
case RewriteRequest( 
    ParsePath(List("room", "join", roomId, userId), _, _, _), _, _) => 
    RewriteResponse(List("pages", "room", "join"), 
     Map("roomId" -> roomId, "userId" -> userId) 
    ) 

사이트 맵에 "/pages/room/join.html"을 추가해야 할 수도 있습니다.

0

당신은 당신의 재 작성에 새로운 케이스를 추가 할 수 있어야한다 :

LiftRules.statelessRewrite.prepend(NamedPF("AppRewrite") { 
     case RewriteRequest(
      ParsePath(List("room", room, user), _, _, _), _, _) => 
       RewriteResponse(List("room"), 
        Map("room" -> room, "user" -> user) 
       ) 
     case RewriteRequest(
      ParsePath(List("room", page, room, user), _, _, _), _, _) => 
       RewriteResponse(List("pages", "room", page), 
        Map("room" -> room, "user" -> user) 
       ) 
}) 
관련 문제