在我的路由文件的末尾,我放置了一个包罗万象的路由来捕获以前未捕获的请求并将其传递给我自己的路由器(用于进一步处理):
GET /*nameUrl controllers.Application.router(nameUrl: String)
当然,在那条线之前还有许多其他路线。对我来说,最大的惊喜是每次都击中所有内容,即使之前的路线也被击中,所以如果我打开地址domain.tld/test
,它会在控制台中显示我的两个日志Test action hit!
AND Custom router hit!
。有一个简化的示例:
public static Result test() {
Logger.debug("Test action hit!");
return ok();
}
public static Result router(String nameUrl) {
Logger.debug("Custom router hit!");
return ok();
}
路线(按此顺序)
GET /test controllers.Application.test
GET /*nameUrl controllers.Application.router(nameUrl: String)
我想得到什么:
我想用我的路由器获取文章的 url,即domain.tld/category_1/article_title
前面没有任何前缀,当然,如果我将 catch all 更改为稳定的东西,它将不再受到双重打击:
GET /news/*nameUrl controllers.Application.router(nameUrl: String)
domain.tld/news/category_1/article_title
但是我真的很想避免/news/
分段。那可能吗?