子项目中的尾部斜线导致404

时间:2015-08-10 06:53:21

标签: playframework playframework-2.3

在我的路线文件中,我定义了以下路线:

Array#join

如果我转到GET /something controllers.Application.something ,它会正常工作,如果我转到mysite.com/something我会得到 404

一个解决方案是拥有两条路线,一条带斜线,另一条没有斜线,但Google不会喜欢这条路线。另一种方法是在控制器中进行某种重定向,但感觉有点尴尬。是否有一些原生播放解决方案可以帮助您做到这一点?

1 个答案:

答案 0 :(得分:0)

嗯,首先你可以看看https://github.com/mariussoutier/play-trailing-slash - 一个旨在实现所需功能的项目。

你当然可以自己做。它会是这样的:

将它放在routes文件的END(以便它作为不匹配路由的最后手段):

# match every route with slash at the end
GET     /*path/             controllers.Application.ownRedirect(path: String)

然后在Application.java

中实施该方法
public static Result ownRedirect(String path) {
    return movedPermanently("/" + path);
}