我正在尝试制作一个IIS URL重写规则,将URL参数附加到URL。 url参数是hssc 。 所以,任何通过服务器处理的url都需要这个参数。 请记住,有些url已经有自己的参数了,其他url不会,还有根url等等,有时需要添加?hssc=1或者&hssc= – 所以,如果我的url是这样:
我也希望它的URL不应该被隐藏(如在后台在后台重写)。 我需要URL出现在URL中,所以当用户复制URL或书签时,参数就在那里。
我已经设置了匹配它的条件\&hssc|\?hssc – 现在我只需要一种方法来编写URL,这样它就会出现并保留已经存在的原始URL的一部分。
这应该做的伎俩:
<rule name="Add hssc param" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{QUERY_STRING}" pattern="hssc=1" negate="true" /> <add input="&{QUERY_STRING}" pattern="^(&.+)|^&$" /> </conditions> <action type="Redirect" url="http://{HTTP_HOST}/{R:0}?hssc=1{C:1}" appendQueryString="false" /> </rule>
这将始终将hssc = 1添加到查询string的开头,同时保留查询string的其余部分。 它适用于你所有的例子。 我把它预先而不是附加,但我认为这是相同的最终结果。