5

假设我有一个通过http://www.mypage.com/test.aspx访问的远程页面。在该页面上,我使用代码 Request.ServerVariables["HTTP_HOST"].ToString()。是否有可能当我访问该页面时,代码返回的 url 与我在 url 栏中看到的http://www.mypage.com/test.aspx不同?任何帮助,将不胜感激。谢谢。

4

5 回答 5

3

您可以看到 IIS 已绑定到您的 Web 实例的任何名称。因此,如果您的服务器名为“server1”且 IP 地址为 123.123.123.123,并且所有这三个都绑定到您的 IIS 实例,您可以看到其中的任何值。

要查找绑定的名称,请打开“Internet 信息服务 (IIS) 管理器”(开始,管理工具),展开树直到看到您的站点。找到你正在使用的那个。右键单击并选择“绑定”。编辑列表中的每个绑定。如果他们都说 [IP address:] “All Unassigned”,那么您的 HTTP_HOST 可能是 1. 您通过 DNS 配置的 WWW 地址,2. 机器名称 3. IP 地址。

于 2011-01-05T20:41:31.813 回答
1

尝试使用:

HttpContext.Current.Request.ServerVariables["SERVER_NAME"]

我希望这会奏效。

于 2011-01-05T20:44:40.933 回答
1

我也遇到了 HttpContext.Current.Request.ServerVariables["HTTP_HOST"] 的问题并弄清楚了。检索主机名的最佳方法是“HttpContext.Current.Request.Url.Host”。它解决了我的问题。

谢谢,拉吉

于 2013-02-13T07:11:06.503 回答
0

这是可能的,是的。isapi_rewrite模块可以在您自己的代码能够检查它之前修改 HTTP_HOST 的值。

于 2011-01-05T20:42:58.353 回答
0

有人已经提到本地重写器 (isapi_rewrite),但也有远程重写器,例如发布服务器的 ISA 服务器。发送原始主机标头(客户端输入的内容)或在发布设置中输入的内容是一种配置。

于 2011-01-06T00:16:46.610 回答