URL重写 - 在URL中附加页面名称和查询字符串

时间:2016-09-27 12:10:35

标签: c# asp.net iis-7

我想在我的web.config中添加一些URL重写内容

源网址: http://constant.com/caam/verifying/?token=kpG1TwYo2KqTS%2bKg%2fY6lVm2Gt

需要将其转换为网址: http://constant.com/caam/verifying/default.aspx?token=kpG1TwYo2KqTS%2bKg%2fY6lVm2Gt

关于如何完成此建议或其他建议的任何想法都非常赞赏它。

1 个答案:

答案 0 :(得分:0)

IIS(web.config)中的基本重定向规则可能如下所示:

            <rule name="Token Redirect" stopProcessing="true">
                <match url="caam/verifying.*" />
                <conditions trackAllCaptures="true">
                    <add input="{QUERY_STRING}" pattern="&amp;?(token=[^&amp;]+)&amp;?" />
                    <add input="{REQUEST_URI}" pattern="default.aspx" negate="true" />
                </conditions>
                <action type="Redirect" url="/caam/verifying/default.aspx?{C:1}" appendQueryString="false" redirectType="Found" />
            </rule>

您可以更改匹配网址,但基本上这是匹配所有启动caam /验证的内容。

然后(另外)检查查询字符串是否有&#34; token =&#34;在它的某个地方,并捕捉它的价值(它将进入捕获1,因为这里没有别的,例如{C:1})。

然后我们将重定向输出为/caam/verifying/default.aspx?{C:1}(其中{C:1}是&#34;令牌= 12345&#34;,例如)。

请注意,只有在网址匹配(caam /验证部分)且参数匹配时才会触发此规则(&#34;令牌=&#34;部分) - 此重定向规则获取否则就跳过了。

修改

我已经添加了额外的&#34;否定&#34;规则匹配&#34; default.aspx&#34;页。