2010-04-08 124 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. 概念自动化支持公司
相关问题