.NET Core 6 URL重写规则问题:blog-page路径无法重定向至/blog
.NET Core 6 URL Rewrite规则问题排查与修复
核心问题与修复步骤
- 目标路径配置错误:你当前规则的
<action>节点里url="/",但实际需求是重定向到/blog,这是最直接的错误,先把这个路径修正。 - 规则顺序问题:如果这条规则排在其他规则之后,而前面的规则已经匹配了
blog-page/开头的请求(且设置了stopProcessing="true"),这条规则就不会被执行。必须把它放在所有可能匹配blog-page/*的规则前面。 - 正则匹配验证:你的正则
^blog-page/(.*)$本身是有效的,能匹配所有blog-page/开头的路径(包含任意扩展名,比如.html、.aspx、.pdf)——.NET Core Rewrite模块默认匹配请求的相对路径部分(不含域名、查询字符串),只要请求路径符合格式就能命中。
修正后的规则示例
<rule name="Redirect old blog path to blog root" stopProcessing="true"> <match url="^blog-page/(.*)$" /> <action type="Redirect" url="/blog" redirectType="Permanent" /> </rule>
额外排查手段
如果修正后仍不生效,可以启用Rewrite日志查看请求处理流程:
app.UseRewriter(new RewriteOptions() .AddIISUrlRewrite(env.ContentRootFileProvider, "rewrite-rules.xml") .Add(RewriteLoggingRule())); // 自定义日志规则,输出当前处理的请求路径 private static IRule RewriteLoggingRule() { return new Rule(context => { var logger = context.HttpContext.RequestServices.GetService<ILogger<Program>>(); logger.LogInformation("Processing request path: {Path}", context.HttpContext.Request.Path); return RuleResult.ContinueRules; }); }
内容的提问来源于stack exchange,提问作者Brenden Kehren
相关产品推荐
相关产品推荐

