1

我有一个包含以下条目的外部“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>

如何重写 URL,例如: 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 的名称)

谢谢你的帮助。干杯,克里斯。

4

1 回答 1

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”(以避免任何人混淆,如果遵循这个)。

于 2012-11-07T12:53:26.540 回答