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

ASP.NET Core配置Url Rewrite功能不生效,咨询配置是否存在错误

ASP.NET Core Url重写配置错误说明与修正方案

你的配置存在两处可直接导致重写不生效的问题,具体如下:

  • 重写目标使用相对路径,缺少前导斜杠
    你当前配置的重写目标为restaurant/hello属于相对路径,当你请求/restaurant/123时,重写后路径会拼接为/restaurant/restaurant/hello,无法匹配预期路由,需要改为带前导斜杠的绝对路径/restaurant/hello。
  • 冗余使用插值字符串语法
    目标路径写法$"restaurant/hello"没有用到任何插值变量,属于无效冗余写法,虽不会直接触发报错,但存在后续维护的潜在风险,直接改为普通字符串即可。

如果你的hello接口需要接收原路径中的数字参数,可通过$1引用正则第一个捕获组的内容,将目标路径调整为"/restaurant/hello?id=$1"即可传递参数。

修正后的代码示例

var options = new RewriteOptions()
                  .AddRewrite(@"^restaurant/(\d+)", "/restaurant/hello", skipRemainingRules: true);

app.UseRewriter(options);   // 重写中间件放在首位的顺序是正确的,无需调整
app.UseHttpsRedirection();
//app.UseDefaultFiles();
//app.UseStaticFiles();
app.UseFileServer();
app.UseCookiePolicy();
app.UseRequestLocalization();
app.UseRouting();

验证小技巧:如果修改后仍未达预期,可在app.UseRewriter后添加临时中间件输出重写后的路径,确认重写逻辑是否正常执行:

app.Use(async (context, next) =>
{
    // 输出重写后的路径到控制台,可按需改为日志输出
    System.Diagnostics.Debug.WriteLine($"重写后路径:{context.Request.Path}");
    await next();
});

内容的提问来源于stack exchange,提问作者user2981411

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:45:01