C# 为什么';ASP.NET核心重写中间件是否按预期运行? var rewriteOptions=新的rewriteOptions();; rewriteOptions.AddRewrite(“\\\/blog\\/[0-9]+”,“/blog.html”,true); app.UseRewriter(重写选项);

C# 为什么';ASP.NET核心重写中间件是否按预期运行? var rewriteOptions=新的rewriteOptions();; rewriteOptions.AddRewrite(“\\\/blog\\/[0-9]+”,“/blog.html”,true); app.UseRewriter(重写选项);,c#,asp.net-core,url-rewriting,asp.net-core-middleware,C#,Asp.net Core,Url Rewriting,Asp.net Core Middleware,我添加了这个中间件来进行url重写,使/blog/指向html页面(该页面中的JS将提取整数,然后对JSON发出适当的请求以获取内容),但是重定向没有发生(应用程序的行为就像没有规则一样)。有什么问题吗 我在重写中间件之前和之后添加了以下内容: app.Use(异步(上下文,下一步)=> { Console.WriteLine(context.Request.Path+“\n”); 等待next.Invoke(); }); 所以我知道之前的路径是我所期望的,之后的路径不会被重写 当我添加另一条

我添加了这个中间件来进行url重写,使/blog/指向html页面(该页面中的JS将提取整数,然后对JSON发出适当的请求以获取内容),但是重定向没有发生(应用程序的行为就像没有规则一样)。有什么问题吗

我在重写中间件之前和之后添加了以下内容:

app.Use(异步(上下文,下一步)=>
{
Console.WriteLine(context.Request.Path+“\n”);
等待next.Invoke();
});
所以我知道之前的路径是我所期望的,之后的路径不会被重写

当我添加另一条规则时,第一条规则开始起作用。经过进一步的测试,我添加的每一条规则,除了最后一条,似乎都像预期的那样工作

之后,我将上述重写规则更改为:

rewriteOptions.AddRewrite(“\\/blog-[0-9]+”,“/blog.html”,true);
现在它被破坏了(应用程序的行为就好像规则不存在一样),即使后面还有另一条规则


我遗漏了什么?

我找到了解决方案。出于某些我不理解的原因,重写中间件在对regex进行测试之前会从URL中删除前面的“/”,因此一旦更新到预期的程度,regex就可以正常工作