Playframework: 将路由输入重定向到外部URL

5
我希望有以下重定向功能。
GET /google    google.com

我该如何实现这个功能?

我不建议将本地路径映射到外部URL,这会产生误导并且不符合标准的导航体验。如果需要,我只会在需要的地方添加一个指向Google的链接。 - Pere Villega
Pere,google.com只是一个例子。我们有两个内部域名网站...假设一个是主站点,另一个是博客站点(在不同的域名下,由一个独立团队维护)。我只想简单地将domiain.com/blog重定向到blog.com。 - roshan
即使它是应用程序外部的(因此它将有自己的路径),我也不会在那里使用路由。路由是用于应用程序本身的路径。 - Pere Villega
2个回答

8

目前看来,从路由文件直接实现这个功能似乎不可能

你可以在控制器中实现这个功能:

public class Application extends Controller {

 public static void google() {
    redirect("http://www.google.com");
 }
}

谢谢。是的,这是目前为止最好的解决方案(除了使用apache/web服务器)。如果路由可以处理这种情况,不确定可以节省多少资源。 - roshan
3
从SEO的角度来看,当重定向到其他域名时,我强烈建议使用redirect("http://www.google.com", true);。这将向搜索机器人指示内容已永久移至新位置,而不是暂时(HTTP代码301而不是302)。有关302重定向的非常详细的讨论在这里 - pents90
6
可直接通过路由进行重定向:GET /main controllers.Default.redirect(to = "http://google.com/") - FoREacH

8
GET /google    controllers.Default.redirect(to = "http://google.com/")
< p>(FoREacH的评论转载,因为它值得成为这里的答案)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接