【问题标题】:IIS 7.5 URL Rewrite 2.0, rule never firesIIS 7.5 URL Rewrite 2.0,规则永远不会触发
【发布时间】:2015-04-02 18:36:46
【问题描述】:

我正在使用 IIS 7.5 和 URL Rewrite 2.0,并且正在尝试创建一个规则来重写 URL,例如……

http://www.abcd.com/2576-River-Oak-Drive/SF/3567781

到……。

http://www.abcd.com/search/propDetail.cfm?TYP=SF&LN=3567781

基本上忽略了“2576-River-Oak-Drive”组件。

设置重写规则后,我位于站点根目录 (d:\sites\abcd\web.config) 的 web.config 文件包含以下部分...

<rewrite>
  <rules>
    <rule name="Rewrite to propDetail.cfm" patternSyntax="ECMAScript" stopProcessing="true">
     <match url="^/([_0-9a-z-]+)/([A-Z]{2})/([0-9]+)" ignoreCase="true" />
     <action type="Rewrite" url="propDetail.cfm?TYP={R:2}&amp;LN={R:3}" appendQueryString="true" logRewrittenUrl="false" />
     <conditions>
        <add input="{HTTP_HOST}" pattern="^www\.abcd\.com$" />
     </conditions>
   </rule>
  </rules>
</rewrite>

当我将浏览器指向 http://www.abcd.com/2576-River-Oak-Drive/SF/3567781 时,我收到 404 错误和消息,指出服务器上不存在目录 d:\sites\abcd\2576-River-Oak-Drive\SF\3567781。

我假设 404 错误和消息意味着该规则从未触发。这是正确的,如果是,是什么错误导致规则不触发?

【问题讨论】:

    标签: url-rewriting


    【解决方案1】:

    发现问题。匹配 URL 不应包含前导“/”;应该是“^([_0-9a-z-]+)/([A-Z]{2})/([0-9]+)”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 2021-05-22
      • 2015-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多