【发布时间】: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}&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