我正在尝试强制进行网址重定向(使用url重写模块,但由于某种原因,它似乎不愿意匹配。)
我的用例如下: 网址:http://somesite.domain.com/?test=4
现在,当它匹配?test = 4到http://somesite.domain.com/subsite/?test=5时,我正尝试将其重定向 我已经通过多种匹配方式^ \?test = 4(在匹配网址或条件上)尝试了多种方式,
由于某种原因,它不愿意触发。
匹配的正则表达式\\ test = 4是否存在明显的问题,还是应该起作用?
完整的web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="^\?test=4" enabled="false" patternSyntax="ECMAScript" stopProcessing="true">
<match url="\?test=4" />
<action type="Redirect" url="/subsite/?test=5" appendQueryString="true" />
<conditions>
</conditions>
</rule>
<rule name="2" stopProcessing="true">
<match url="^$" />
<conditions logicalGrouping="MatchAny">
</conditions>
<action type="Redirect" url="/subsite/?test=5" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我现在相当熟悉url重写模块,因此我将反复尝试。 任何提示都很好!
答案 0 :(得分:0)
据我所知,URL匹配将不匹配查询字符串。因此,您的网址重写规则将无效。
如果要检查查询字符串,建议您使用IIS url重写查询字符串条件。
更多详细信息,您可以参考以下网址重写规则:
<rule name="MatchQueryString" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{QUERY_STRING}" pattern="test=4" />
</conditions>
<action type="Redirect" url="/subsite/?test=5" appendQueryString="false" />
</rule>
结果: