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

求助:IIS .NET MVC中URL Rewrite Module精确URL重定向报错

解决.NET MVC旧URL重定向问题

你配置的URL Rewrite规则存在两个核心问题,直接导致了“Controller App is not found”的错误:

错误点分析

  • <match url> 字段无需包含完整域名和协议,它仅匹配域名之后的路径部分。你写入完整URL后规则根本不会触发,请求仍会按原路由解析,MVC自然会尝试寻找名为App的控制器。
  • 使用Rewrite类型是服务器内部重写,浏览器地址栏不会更新,内部仍会按原路径处理,依旧触发错误。若需要用户看到新URL,应使用**重定向(Redirect)**类型。

修正后的配置

单个页面精确匹配

如果仅需重定向指定的/App/Home/Index路径,使用以下配置:

<rewrite>
    <rules>
        <rule name="Redirect App Home Index" stopProcessing="true">
            <match url="^App/Home/Index$" />
            <action type="Redirect" url="/Home/Index" redirectType="Permanent" logRewrittenUrl="true" />
        </rule>
    </rules>
</rewrite>

通用匹配(所有/App/开头的路径)

如果要将所有/App/xxx格式的路径都重定向到/xxx,可以用正则实现动态替换:

<rewrite>
    <rules>
        <rule name="Redirect All App Paths" stopProcessing="true">
            <match url="^App/(.*)$" />
            <action type="Redirect" url="/{R:1}" redirectType="Permanent" logRewrittenUrl="true" />
        </rule>
    </rules>
</rewrite>

关键说明

  • redirectType="Permanent" 对应301永久重定向,对SEO友好;若为临时重定向需求,改用Temporary。
  • ^和$是正则边界符,确保精确匹配完整路径,避免部分匹配引发异常。
  • {R:1}是正则捕获组,对应<match>中(.*)匹配到的内容,实现路径的动态替换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 14:20:23