2012-02-10 34 views
1

內重新寫我有以下重寫規則:斯卡拉電梯 - 網址到頁面文件夾

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頁面是在Web應用程序根目錄(如Web應用程序/ room.html)

我想要做的就是添加房間後另一個參數,這樣我就可以有

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

但不是加載webapp根目錄下的room.html,而是使用名爲pages的子文件夾中的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) 
       ) 
})