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

URL Rewriting - Append page name along with query string in URL

我想在 web.config

中添加一些 URL 重写内容

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

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

任何关于如何完成这个或其他建议的想法都非常感谢。

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>

您可以更改匹配项 url,但基本上这是匹配以 caam/verifying.

开头的所有内容

然后(另外)检查查询字符串在某处是否有 "token=",并捕获它的值(它将进入捕获 1,因为这里没有其他内容,例如 {C:1}) .

然后我们将重定向输出为 /caam/verifying/default.aspx?{C:1}(例如,{C:1} 是 "token=12345")。

请注意,仅当 URL 匹配(caam/verifying 部分)并且参数匹配("token=" 部分)时才会命中此规则 - 此重定向规则将被跳过否则。

编辑

我添加了一个额外的 "negate" 规则 匹配 "default.aspx" 页面。