是否可以为不匹配的请求路径指定 'default' 路由?
Is it possible to specify the 'default' routing for unmatched request path?
像nginx一样,当没有匹配到location
时,它可以按照定义的默认部分路由请求路径。类似于 MapElse
方法。
一种方法是制作一条可以捕获任何东西的路线;
订单参数 - 默认情况下所有路线都有 Order = 0
。因此,设置 Order = 10
将使它成为最后一个(如果您将有另一条带有 Order 10 的路线,请务必更新它)。
路由参数中的星号意味着它会将整个 url 作为字符串捕获,因此您可以将其拆分为 /
[Route("{*url}", Order = 10)]
public IActionResult Handle404(string url)
{
// say sample.com/test/1/edit
// it would catch `test/1/edit`
foreach(string item in url.Split("/")) {
...
}
Response.StatusCode = 404;
return View();
}
这里还提到了其他方法,但您需要编写处理状态代码的代码逻辑;
像nginx一样,当没有匹配到location
时,它可以按照定义的默认部分路由请求路径。类似于 MapElse
方法。
一种方法是制作一条可以捕获任何东西的路线;
订单参数 - 默认情况下所有路线都有 Order = 0
。因此,设置 Order = 10
将使它成为最后一个(如果您将有另一条带有 Order 10 的路线,请务必更新它)。
路由参数中的星号意味着它会将整个 url 作为字符串捕获,因此您可以将其拆分为 /
[Route("{*url}", Order = 10)]
public IActionResult Handle404(string url)
{
// say sample.com/test/1/edit
// it would catch `test/1/edit`
foreach(string item in url.Split("/")) {
...
}
Response.StatusCode = 404;
return View();
}
这里还提到了其他方法,但您需要编写处理状态代码的代码逻辑;