让我们举个例子:Grails项目myproj部署在Tomcat 6中。它可以通过以下链接访问:http://www.mycompany.com/myproj。
假设我们购买了另一个域http://newcompany.com,我们想将其指向http://www.mycompany.com/myproj/url。
如果我转到http://newcompany.com/12345,则应与执行http://www.mycompany.com/myproj/url/12345相同。
有人能告诉我这是否可行?如何实现它(更改Tomcat 6配置,在UrlMappings.groovy中添加代码)?
提前致谢。
答案 0 :(得分:2)
如果您使用Apache使用Tomcat并使用通过mod_rewrite和/或mod_jk重写的URL,则指向同一站点的两个域很简单。
也可以在tomcat配置中添加别名,虽然我认为你不能只使用一个上下文路径的别名,而只使用Tomcat的一个别名,所以你可能需要让你的应用知道不同的主机。
更大的问题是,你真的想要同一个实例的2个域,因为它可能会混淆用户和搜索引擎,并且几乎肯定会导致错误。
答案 1 :(得分:1)
您可以使用UrlMappings.groovy将控制器映射到根索引。例如,我希望我的root索引“/”由我的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')
}
}
希望这会有所帮助......
答案 2 :(得分:0)
有一个名为URLRewrite的Java Web过滤器可能会执行您想要的操作 - 它为Tomcat执行与mod_rewrite对Apache相同的工作。