我想做的是如果我有链接:
http://www.test.com/photo/hfz6rhfgz/?offset=10
重写为:
http://www.test.com/photo/hfz6rhfgz/&offset=10
可能有其他查询参数和哈希可能在除第一个之外的其他地方......
问题是它会起作用,但由于偏移是我的规则的第二个参数,我得到:
?
这当然会导致错误,因为我需要&
而不是<rule name="test-redirect" stopProcessing="true">
<match url="^photo.asp$" ignoreCase="true" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{QUERY_STRING}" pattern="^(.*)hash=([\w]{8})(.*)$" />
</conditions>
<action type="Redirect" url="/photo/{C:2}/{C:1}{C:3}" redirectType="Permanent" appendQueryString="false" />
</rule>
。在重定向的URL中,偏移量就像第二个参数,在原始链接中,它是第二个参数。
这是我的重定向规则:
{{1}}
答案 0 :(得分:0)
我自己找到了一个解决方案,但是如果有类似
的话http://www.test.com/photo.asp?test=10&hash=jcekg876
它产生:
http://www.test.com/photo/jcekg876/?test=10&
所以最后一个放大器太多了,在其他情况下它可以正常工作。如果有人知道如何摆脱这个&amp;这会很好,因为我需要一个干净的URL重定向......
<rule name="test-redirect" stopProcessing="true">
<match url="^photo.asp$" ignoreCase="true" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{QUERY_STRING}" pattern="(.*)hash=([\w]{16})[&]?(.*)" />
</conditions>
<action type="Redirect" url="/photo/{C:2}/?{C:1}{C:3}" redirectType="Found" appendQueryString="false" />
</rule>