我有一个带有以下条目的外部“rewritemaps.config”文件:
<rewriteMaps>
<rewriteMap name="Cat1">
<add value="2" key="wheels-and-castors" />
<add value="3" key="agricultural" />
<add value="4" key="hydraulic-hose-and-fittings" />
<add value="5" key="engineering-plastics" />
<add value="6" key="sealing-and-jointing" />
<add value="7" key="health-and-safety" />
<add value="8" key="hose-and-ducting" />
<add value="9" key="hose-couplings-and-clamps" />
<add value="10" key="general-consumables" />
<add value="11" key="ceramics" />
<add value="12" key="rubber-and-polyurethane" />
</rewriteMap>
</rewriteMaps>
如何重写网址,例如: http://www.domain.com/wheels-and-castors/
以下内容: http://www.domain.com/category.asp?catID=2
注意,这是重写,而不是重定向。
我觉得我差不多还有最后的改写线,但我在比赛和条件上都很挣扎。我目前的最终改写行是:
<action type="Rewrite" url="category.asp?catID={Cat1:{C:1}}" appendQueryString="false" />
(其中Cat1是我的rewriteMap的名称)
感谢您的帮助。干杯,克里斯。
答案 0 :(得分:1)
好的,经过一周的研究和试验,错误,我已经有了它的工作。这是我正在使用的完整规则,它引用了一个外部的“rewritemaps.config”。
<rule name="Match Category URLs" stopProcessing="true">
<match url="^(?![^/]+?\.(?:css|png|jpg|axd)$)([^/]+)/?$" />
<conditions>
<add input="{URL}" pattern="(.asp|.xml)" negate="true" />
</conditions>
<action type="Rewrite" url="category.asp?catID={CatMap:{R:1}}" appendQueryString="false" />
</rule>
现在完美运作。
PS。我将rewriteMap重命名为“CatMap”(以避免让任何人感到困惑,如果这样做的话)。