【问题标题】:IIS7 URL Rewrite - Why isn't this working?IIS7 URL 重写 - 为什么这不起作用?
【发布时间】:2012-04-28 03:22:42
【问题描述】:

我有这个简单的重写,但由于某种原因我无法弄清楚它为什么不起作用:

<system.webServer>
  <rewrite>
    <rules>
      <rule name="men-s-watches" stopProcessing="true">
        <match url="(.*)/men-s-watches(.*)" />
        <action type="Redirect" url="{R:1}/mens-watches" appendQueryString="false" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

希望有人能指出我的菜鸟错误。

【问题讨论】:

    标签: asp.net-mvc-3 iis-7 url-rewriting


    【解决方案1】:

    通常在 IIS7 中使用 url 重写模块,您可以像这样分配规则。

    <system.webServer>
      <rewrite>
        <rewriteMaps>
          <rewriteMap name="usr_rule">
        </rewriteMap>
      </rewriteMaps>
      <rules>
        <rule name="men-s-watches">
          <match url="^([0-9]+)/men-s-watches/([0-9]+)" />
          <action type="Rewrite" url="men-s-watches/default.aspx?id={R:1}&amp;p={R:2}" />
        </rule>
        </rules>
       </rewrite>
    </system.webServer>
    

    【讨论】:

    • 我很确定我的匹配 url 是正确的,测试模式工具说它是完美的。我对任何查询字符串信息都不感兴趣,这只是该类别的全部内容,以避免在站点重建后出现 404 - 从 magento 移植到 asp.net mvc。
    • 好的,我测试了你的规则,它是正确的,请提供示例 url 并重写 url 以检查你的模式。
    • www.anydomain.com/men-s-watches 应该重定向到 www.anydomain.com/men-watches
    • 如果没有传递动态查询字符串值,那么您的任务只是通过以下规则与我一起工作
    猜你喜欢
    • 2011-05-12
    • 2010-09-24
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多