在Play框架中是否有默认捕获所有后备路由?如果是这样,我如何在我的路线文件中配置它?目前,有些网址我不希望用户给他们打电话,即使他们打电话,我也不希望出现错误页面,而是希望他们转到我的网络应用程序的登录页面!有没有办法在路由配置文件中执行此操作?
答案 0 :(得分:7)
只需在routes
文件末尾定义匹配任何路径的路线即可。不要忘记为您的资产定义特定路线,例如:
GET / controllers.Application.index
GET /some/path controllers.Application.someHandler
...
# End of file
GET /favicon.ico controllers.Assets.at(path="/public", file="img/favicon.ico")
GET /$file<(css|img|js|partials)/.*> controllers.Assets.at(path="/public", file)
GET /$path<.*> controllers.Application.catchall(path)
任何与先前规则不匹配的网址都将与此匹配。
答案 1 :(得分:4)
当您想对路径执行某些操作时(即在自定义操作中手动解析),捕获所有路线是有意义的,否则在Global object和重定向请求中使用常见onHandlerNotFound
就足够了哪里都行。