使用 Umbraco 重写时如何删除查询字符串

How to remove querystring when using Umbraco rewrite

我的 Umbraco/ASP .Net 站点有如下重写规则

<add name="Test" virtualUrl="^~/category/(.*)" destinationUrl="/category?cat=" rewriteUrlParameter="ExcludeFromClientQueryString" ignoreCase="true" />

这个想法是如果用户输入

www.example.com/category/electronics
www.example.com/category/devices
www.example.com/category/food
www.example.com/category/beverages

当他们在没有任何规则和纯 URL 的情况下到达页面时,一切都如我所料,即

www.example.com/category?cat=electronics

如果我有上述规则,当您在上面的任何页面上单击 link 时,它总是 adds/forwards 查询字符串参数 i.e cat=

如何停止 forwarding/adding 参数?

您可以使用以下 URL 重写规则:

 <rule name="add query string" stopProcessing="true">
                <match url="^category/([^/]+)/$" />

                <action type="Redirect" url="http://www.sample1.com/category?cat={R:1}" appendQueryString="false" />
            </rule>

如果你没有在 iis 中安装 URL rite 模块你可以从下面安装它 link:

https://www.iis.net/downloads/microsoft/url-rewrite