2010-04-08 60 views
0

讓我們來舉個例子:一個grails項目myproj被部署在Tomcat 6中。它可以通過以下鏈接訪問任何地方:http://www.mycompany.com/myproj是否可以將根域URL映射到Grails的控制器?

比方說,我們購買了另一個域http://newcompany.com,我們想指向它http://www.mycompany.com/myproj/url

如果我去http://newcompany.com/12345,它應該和http://www.mycompany.com/myproj/url/12345一樣。

誰能告訴我這是否可能?如何實現它(更改Tomcat 6配置,在UrlMappings.groovy中添加代碼)?

在此先感謝。

回答

2

如果您使用Apache訪問Tomcat並通過mod_rewrite和/或mod_jk使用url重寫,那麼擁有指向同一站點的2個域是非常簡單的。

也可以給你的tomcat配置添加別名,儘管我不認爲你的上下文路徑只有一個別名,只有一個使用Tomcat的根目錄,所以你可能需要讓你的應用程序知道不同的主機。

更大的問題是,你真的想要2個域的同一個實例,因爲它可能會混淆用戶和搜索引擎,幾乎肯定會導致錯誤。

+0

感謝提示。實際上,第二個域的目的是作爲內部和自定義URL縮短服務/統計信息跟蹤器,僅由第一個域(項目)使用。而不是創建2個差異grails項目,我們正在考慮是否可以將它們集成爲一個項目。你怎麼看?這是否有意義? – firnnauriel 2010-04-08 13:37:52

+0

我可能會使用Apache來做到這一點 – 2010-04-08 14:35:28

0

有一個名爲URLRewrite的Java網頁過濾器,它可能會做你想做的事 - 它爲Tomcat執行與mod_rewrite相同的工作。

1

您可以使用UrlMappings.groovy將控制器映射到根索引。例如,我希望我的根索引「/」由我的loginController.groovy控制。因此,我增加了urlMapping中的條目 「/」(控制器: '登錄',行動: '索引')

的UrlMappings.groovy如下所示:

class UrlMappings { 
    static mappings = { 
     // MJC - added this in an attempt to give a controller some control 
     // over the root. 
     "/"(controller:'login',action:'index') 

     "/$controller/$action?/$id?"{ 
      constraints { 
       // apply constraints here 
      } 
     } 
     // "/"(view:"/index") 
     "500"(view:'/error') 
    } 

}

希望這有助於。 ..

  • 蒙C. 概念自動化支持公司