我需要编写一个重定向来删除某个特定参数时的参数,但我希望重定向与传入的URL相同,只是没有参数。这就是我所拥有的,它不起作用。我想如果我把请求URI放在那里而不附加查询字符串,那么它会起作用但它会导致循环。有人曾经这样做过吗?
<rule name="Remove parameters" stopProcessing="true">
<match url="(.*)" ignoreCase="true" />
<conditions trackAllCaptures="true">
<add input="{QUERY_STRING}" pattern="page=([0-9]+)" />
</conditions>
<action type="Redirect" url="{REQUEST_URI}" appendQueryString="false" />
答案 0 :(得分:5)
jallen的答案问题是整个查询字符串将被删除,如果您想维护它的某些部分,这可能并不理想。另一种选择如下:
<rule name="Remove paging parameters" stopProcessing="true">
<match url="(.*)?$" />
<conditions trackAllCaptures="true">
<add input="{QUERY_STRING}" pattern="(.*)(page=.+)(.*)" />
</conditions>
<action type="Redirect" url="{C:1}{C:3}" appendQueryString="false" />
</rule>
page
参数page
参数因此,我们使用重定向{C:1}{C:3}
排除仅页面查询字符串。
答案 1 :(得分:2)
通过以下方式获得:
<rule name="Remove paging parameters" stopProcessing="true">
<match url="(.*)?$" />
<conditions trackAllCaptures="true">
<add input="{QUERY_STRING}" pattern="page=([0-9]+)" />
</conditions>
<action type="Redirect" url="{R:1}" appendQueryString="false" />