IIS重写到CustomError 403不起作用

时间:2017-05-26 21:36:30

标签: iis url-rewriting

所以我试图捕获所有查询字符串并返回403。 我的web.config中有以下规则(使用URL Rewrite模块)

 <rewrite>
        <rules>
            <rule name="PREVENT QUERYSTRING" stopProcessing="true">
                <match url="([?&amp;=]+)" />
                <action type="CustomResponse" statusCode="403" subStatusCode="0" statusReason="Unallowed" statusDescription="Unallowed" />
            </rule>
        </rules>
    </rewrite>      

然后我输入我的浏览器

  

http://site.local?test=test

我不会得到403。 有人可以告诉我为什么吗?感谢。

1 个答案:

答案 0 :(得分:1)

您必须匹配查询字符串而不是请求URL。喜欢这个

<rewrite>
    <rules>
            <rule name="PREVENT QUERYSTRING" patternSyntax="ECMAScript" stopProcessing="true">
                <match url=".*" />
                <action type="CustomResponse" statusCode="403" subStatusCode="0" statusReason="Unallowed" statusDescription="Unallowed" />
                    <conditions>
                        <add input="{QUERY_STRING}" pattern="([?&amp;=]+)" />
                    </conditions>
            </rule>
        </rules>
    </rewrite>