【问题标题】:IIS 8.0 URL Rewrite Module not working for Orchard CMS URL RedirectIIS 8.0 URL 重写模块不适用于 Orchard CMS URL 重定向
【发布时间】:2026-02-03 00:00:01
【问题描述】:

我在我的机器上使用 SQL LocalDb 在 IIS 8.0 上本地托管了一个 Orchard 站点。 我还在 IIS 中安装并集成了 URL 重写模块。 我已经修改了 Orchard.Web 项目中的 web.config 以重定向为

<rewrite>
  <rules>
    <rule name="Redirect services to expertise" stopProcessing="true">
      <match url="/services/(.*)" />
      <action type="Redirect" url="/expertise/{R:1}" />
    </rule>
  </rules>
</rewrite>

所以,我打算做的是从"http://localhost:70/Orchard/services/content-management" to "http://localhost:70/Orchard/expertise/content-management". 重定向 但这并没有按预期工作,也没有重定向。它会打开相同的旧“../services/..” URL。

有什么想法吗?

提前致谢。

【问题讨论】:

    标签: iis orchardcms iis-8


    【解决方案1】:

    我认为问题在于您的规则。 url 没有前导斜杠。尝试将规则更改为:

    <rule name="Redirect services to expertise" stopProcessing="true">
      <match url="^services/(.*)" />
      <action type="Redirect" url="expertise/{R:1}" />
    </rule>
    

    这会将任何以 services/... 开头的 url 重定向到 experience/...

    【讨论】:

    • 但是我指定的模式完全匹配。我使用 URL 重写模块“测试模式”在 IIS 中对其进行了测试。您指定的不匹配。
    • 上述规则你试过了吗?这可能不是您唯一的问题,但 url 不应该有一个前导正斜杠。 “测试模式”工具中的示例是“目录/产品/销售” - 没有前导正斜杠。如果您针对“服务/某些页面”测试我的规则,它确实匹配。