ルートファイルの最後に、以前はキャッチされなかったリクエストをキャッチするためのキャッチオールルートを配置し、それを自分のルーターに渡します(さらに処理するため)。
GET /*nameUrl controllers.Application.router(nameUrl: String)
もちろん、その線の前には他にもたくさんのルートがあります。私にとって大きな驚きは、前のルートもヒットしたとしても、毎回キャッチオールがヒットすることです。そのため、アドレスを開くと、コンソール domain.tld/test
に両方のログが表示されます。簡略化されたサンプルがあります:Test action hit!
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
、もちろん、キャッチオールを安定したものに変更すると、ダブルヒットは発生しなくなります。
GET /news/*nameUrl controllers.Application.router(nameUrl: String)
domain.tld/news/category_1/article_title
/news/
しかし、私は本当にセグメントを避けたいです。それは可能ですか?