问题描述
使用asp.net核心,而我正在尝试从重写URL: “产品/索引/地区/类型” 至 : “产品/地区类型”
region和type是不固定的单词。相反,他们指的是该区域,无论其名称如何,也指类型
解决方法
如果我理解您的要求正确,那么您应该使用中间件。
尝试一下:
public class UrlRewriterMiddleware
{
private readonly RequestDelegate _next;
public SelfRequestRouterMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
if(context.Request.Path.Value.Contains("product/index/region/type")
context.Request.Path = context.Request.Path.Value.Replace("product/index/region/type","products/region-type");
await _next.Invoke(context);
}
}
,然后在启动时:
app.UseMiddleware<UrlRewriterMiddleware>();