C# 响应\服务器重写规则不适用于所有响应头
我在IIS中有一个名为Home running的asp.net网站,我添加了一个重写URL规则,将响应头中的服务器标记更改为我的。它只适用于部分响应,而不是所有响应 例如: 作品(服务器:我的) 但不工作(服务器:Microsoft…) 可以在C:\Windows\System32\inetsrv\config\applicationHost.config中找到我的规则的代码如下:C# 响应\服务器重写规则不适用于所有响应头,c#,iis,url-rewrite-module,C#,Iis,Url Rewrite Module,我在IIS中有一个名为Home running的asp.net网站,我添加了一个重写URL规则,将响应头中的服务器标记更改为我的。它只适用于部分响应,而不是所有响应 例如: 作品(服务器:我的) 但不工作(服务器:Microsoft…) 可以在C:\Windows\System32\inetsrv\config\applicationHost.config中找到我的规则的代码如下: <rewrite> <allowedServerVariables>
<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>
它确实解决了我上面提到的问题,但仍然有一种来自包含服务器版本的服务器的响应类型:如果我转到“”或“”,将返回该响应类型。我研究发现它是由asp.net生成的资源文件。将确定我是否可以删除该响应或从中删除服务器标记。WebResource.axd响应已缓存,因此当我清除缓存时,它工作正常。现在它工作得很好。重写服务器信息以获得来自SSR的响应是行不通的。