如果没有匹配URL重写规则,如何返回404响应

时间:2020-09-30 17:09:59

标签: iis url-rewriting jetty iis-10

我在Windows 2019上运行IIS 10.我有以下两个规则

        <rules>
             <rule name="Reverse Proxy Inbound Rule 1" stopProcessing="true">
                 <match url="ServiceName1(.*)" ignoreCase="false" />
                 <action type="Rewrite" url="http://127.0.0.1:9090/{R:1}" />
             </rule>
             <rule name="Reverse Proxy Inbound Rule 2" stopProcessing="true">
                 <match url="ServiceName2(.*)" ignoreCase="false" />
                 <action type="Rewrite" url="http://127.0.0.1:9091/{R:1}" />
             </rule>
         </rules>
     </rewrite>

基本上,如果这两个规则都不匹配,我是否可以返回404响应。在我运行Jetty的那一刻,它正在返回

502-Web服务器在充当服务器时收到无效响应 网关或代理服务器。

1 个答案:

答案 0 :(得分:1)

您可以使用以下规则通过url重写来设置自定义页面:

 <rules>
            <rule name="test" enabled="true" stopProcessing="true">
                <match url="(.*)" />
                <action type="CustomResponse" statusCode="404" subStatusCode="4" statusReason="this is custom error page" statusDescription="test error" />
            </rule>

<rule name="Handle404" stopProcessing="true">
                <match url="(.*)" />
               
                <action type="Rewrite" url="/path/to/404.html" />
            </rule>

并在部分下的web.conifg文件中设置以下代码:

 <httpErrors errorMode="Custom" existingResponse="Replace" />
相关问题