为什么 Request.ServerVariables[“HTTP_HOST”] 与 Request.Url.Host

本文关键字:Request Url Host HOST ServerVariables HTTP 为什么 | 更新日期: 2023-09-27 18:35:56

相同的服务器,相同的站点 - 两个不同的结果。

案例1

请求 URL: domain.com (解析为 domain.com/default.aspx)
Firebug 中的请求标头:domain.com
Request.ServerVariables["HTTP_HOST"] = domain.com
Request.Url.Host = domain.com(好的,这很好,在意料之中)

案例2

请求网址: domain.com/default.aspx
Firebug 中的请求标头:domain.com
Request.ServerVariables["HTTP_HOST"] = domain.com
Request.Url.Host = app5(服务器的名称)

查看两个请求,我看不到任何会导致这种情况的原因。为什么会这样?
服务器运行的是 Windows 2003 和 IIS6。

为什么 Request.ServerVariables[“HTTP_HOST”] 与 Request.Url.Host

您应该检查 IIS 元数据库是否设置为使用主机名或其他名称

命令 -> cscript adsutil.vbs get W3SVC/SITE-ID/USEHOSTNAME

结果 ->应该是

The parameter "USEHOSTNAME" is not set at this node.

USEHOSTNAME : (BOOLEAN) False

命令 -> cscript adsutil.vbs get W3SVC/SITE-ID/SETHOSTNAME

结果 ->应该是

The parameter "SETHOSTNAME" is not set at this node.

SETHOSTNAME : (STRING) ""

将站点 ID 更改为站点的数字 ID。

如果您看到任何其他结果,则表示有人修改了网站的上述两个属性。