RESPONSE_SERVER重写规则不适用于所有响应头

时间:2019-01-30 09:16:13

标签: c# iis url-rewrite-module

我有一个名为Home的asp.net网站在IIS中运行,并且添加了重写URL规则以将响应标头中的服务器标签更改为Mine。它仅适用于某些响应,而不适用于所有响应。

例如: https://myDomain/Home/Default.aspx有效。 (服务器:我的) 但是https://myDomain/Home/不起作用(服务器:Microsoft ...)

可以在C:\ Windows \ System32 \ inetsrv \ config \ applicationHost.config中找到的规则代码如下:

<rewrite>
        <allowedServerVariables>
            <add name="RESPONSE_SERVER" />
        </allowedServerVariables>
        <globalRules>
            <rule name="Remove Server">
                <match url=".*" />
                <serverVariables>
                    <set name="RESPONSE_SERVER" value="Mine" />
                </serverVariables>
                <action type="None" />
                <conditions>
                </conditions>
            </rule>
        </globalRules>
    </rewrite>

出于安全原因,我正在删除服务器版本,但是,如果该服务器版本不适用于所有响应,则会定义要点。

1 个答案:

答案 0 :(得分:2)

据我所知,是否要修改响应头的值。我建议您可以尝试使用url重写出站规则而不是普通规则。

请在application.host文件中添加以下规则:

<rewrite>

    <allowedServerVariables>
        <add name="RESPONSE_SERVER" />
    </allowedServerVariables>
    <outboundRules>
        <rule name="ModifyServer">
            <match serverVariable="RESPONSE_SERVER" pattern=".*" />
            <action type="Rewrite" value="Mine" />
        </rule>
    </outboundRules>
</rewrite>