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

RESPONSE_SERVER rewrite rule not working for all response headers

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

例如: 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>

出于安全原因,我删除了服务器版本,但如果它不适用于所有响应,它定义了要点。

据我所知,如果你想修改响应头的值。我建议你可以尝试使用 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>