2012-04-05 121 views
1

我想将我的'/'uri重定向到给定的控制器的操作。我曾经通过下面的代码来做到这一点在UrlMappings.groovyUrl映射,Url重定向/重写

"/"(action: "highlights", controller: "project") 

然而,这不重写浏览器的URL。它重定向到正确的控制器的操作,但浏览器的导航Url仍然在myProject/。我希望它被更新到“正确的”uri,以便重新加载等使用“正确的”uri。

我想:

"/"(uri: "/project/highlights") 

但我得到一个404状态响应。

关于我应该如何进行的任何建议?

回答

3

UrlMappings仅适用于如何将url映射到您的controller.action。它不会做任何重定向。 如果你想做url重定向,你可能需要在你的应用服务器前设置一个像apache这样的http服务器,或者更简单的方法是设置一个controller.action来手动重定向。

"/"(action: "redirect", controller: "project") 

project控制器和redirect动作,只是将用户重定向到您的highlights行动。

+1

我做到了,谢谢。 PS:如果命名为“重定向”,则控制器的操作将覆盖Grails的redirect()方法 – 2012-04-05 14:13:52

1

将您的应用程序部署到myProject/上下文中。因此,您的应用程序的根("/")是myProject/。你想要做的是将你的应用程序部署到你的服务器根上下文中。您可以通过在Config.groovy中设置grails.app.context = “/”来完成此操作。