如何使用IIS替换我的URL的查询字符串值? 我想要做的就是将 ListId 中的值从旧值更改为新值。
旧 ListId 值:7898D8D3-7FDC-427C-B81D-AE95ADA03F07
新 ListId 值:32992B8E-905E-47CA-BAB2-846D3E5D399F
来源网址:
/sites/techopskb/_layouts/listform.aspx?PageType=4&ListId={7898D8D3-7FDC-427C-B81D-AE95ADA03F07}&ID=5859&ContentTypeID=0x0100D98D0B04DDCDF84C872D58FFE6AA6B84
目标网址:
/sites/techopskb/_layouts/listform.aspx?PageType=4&ListId={32992B8E-905E-47CA-BAB2-846D3E5D399F}&ID=7537&ContentTypeID=0x0100D98D0B04DDCDF84C872D58FFE6AA6B84
花括号引起我的头痛。我在表达式中尝试了%7B
和%7D
,但IIS并不喜欢它。 (顺便说一句 - 这是一个SharePoint 2010网站,IIS v7.5)
感谢。
答案 0 :(得分:0)
您需要使用{UrlDecode:%7B}。 See here
所以你的重写规则看起来就像下面的
<rule name="ModifyQueryString" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{QUERY_STRING}" pattern="(.*)listid=\{7898D8D3-7FDC-427C-B81D-AE95ADA03F07\}(.*)" />
</conditions>
<action type="Redirect" url="http://example.com/sites/techopskb/_layouts/listform.aspx?{C:1}&listid={UrlDecode:%7B}32992B8E-905E-47CA-BAB2-846D3E5D399F{UrlDecode:%7D}{C:2}" appendQueryString="false" />
</rule>