You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:39:58