IIS使用通配符为查询字符串重写映射

问题描述 投票:0回答:1

[试图弄清楚如何对查询字符串进行通配符。现在可以使用,但必须完全匹配。

我有此重写规则。

            <rule name="Redirect rule1 for Redirects ReSv">
            <match url=".*" />
            <conditions>
            <add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" />
            </conditions>
            <action type="Redirect" url="{C:1}" appendQueryString="true" />
            </rule>

我的重写图就像:

<rewriteMaps>
    <rewriteMap name="Redirects">
            <add key="/contact-us.aspx" value="/contact/" />
            <add key="/contact-us/request-information.aspx" value="/contact/" />
    </rewriteMap>
</rewriteMaps>

[尝试获得如下内容:/contact-us.aspx?q=t&1=2

重定向到:/联系/并包含querystring?所以../ contact /?q = t&1 = 2

iis mod-rewrite url-rewriting url-rewrite-module
1个回答
0
投票

请我们{URL}变量而不是{REQUEST_URI}。然后,Rewritemap将能够对查询字符串进行通配符。

 <rule name="Redirect rule1 for Redirects ReSv" stopProcessing="true">
            <match url=".*" />
            <conditions>
                        <add input="{Redirects:{URL}}" pattern="(.+)" />
            </conditions>
            <action type="Redirect" url="{C:1}" appendQueryString="true" redirectType="Permanent" />
            </rule>

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.