代码之家  ›  专栏  ›  技术社区  ›  Peter

子项目中的斜杠导致404

  •  0
  • Peter  · 技术社区  · 9 年前

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

    GET     /something                           controllers.Application.something
    

    如果我去 mysite.com/something ,如果我去 mysite.com/something/ 我得到了 404 .

    一个解决方案是有两条路线,一条带斜线,另一条不带斜线,但谷歌不喜欢这样。另一种方法是在控制器中进行某种重定向,但感觉有点尴尬。是否有一些本机Play解决方案可以帮助实现这一点?

    1 回复  |  直到 9 年前
        1
  •  0
  •   Anton Sarov    9 年前

    嗯,作为开始,你可以看看 https://github.com/mariussoutier/play-trailing-slash -旨在实现所需功能的项目。

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

    把这个放在你的结尾 routes 文件(以便作为不匹配路线的最后手段):

    # 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);
    }