IIS将规则重写到路径

时间:2020-06-11 08:55:49

标签: iis url-rewriting url-rewrite-module

由于AspNetCore MVC无法匹配host//querystring之类的Url。我想使用IIS Rewrite模块重定向下面的URL https://localhost:5001//?id=123 to https://localhost:5001/?id=123 这是我的规则,但不起作用,我该如何改进?

    <system.webServer>
    <rewrite>
        <rewriteMaps>
            <rewriteMap name="redirect // to /">
            </rewriteMap>
        </rewriteMaps>
        <rules>
            <clear />
            <rule name="Redirect" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
                <match url="(.*)//\?(.*)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                <action type="Redirect" url="{R:1}/?{R:2}" appendQueryString="false" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

enter image description here

1 个答案:

答案 0 :(得分:0)

据我所知,无论您在地址栏中输入多少“ /”,Web浏览器和提琴手只会向IIS端发送单个“ /”。

即使您可以向IIS发送诸如http://localhost//之类的请求。匹配网址为/。因此(。)// \?(。)永远不会匹配您的传入请求URL。

相关问题