域名转换为 https 的 IP 地址的问题

域名转换为 https 的 IP 地址的问题

我有一个使用 Windows Server 2003 的网站。该网站名为https://mysite.com/并且 IP 地址为 111.1.1.1。现在,当我登录网站时,使用 NavURL (<%# NavURL("Images/Menu/img.gif")%>) 生成的所有相关链接都显示“http://111.1.1.1/图片/菜单/img.gif“ 代替 ”https://mysite.com/Images/Menu/img.gif“。这会导致错误,因为它需要安全。我确信服务器上某处有一个设置指向名称而不是 IP,但我不知道在哪里。谢谢你的帮助。

答案1

您的NavURL()方法(无论是本地定义还是从某个库导入)包含一些用于解析 URL 中使用的主机名和协议的逻辑。根据您的描述,它听起来只是查找本地计算机的 IP 地址,这不是您想要的。

您需要调查生成的 URL 的主机(和协议)部分是从哪里读取的。如果可能,您可能需要修改NavURL()以使用包含根 URL 的配置设置。或者,您可以通过查看 HTTP 请求标头来确定当前请求的主机名和协议,但如果您采用这种方式,请小心 - 请求标头本质上是用户输入,应谨慎对待。

答案2

我能够通过将 NavURL 替换为 ResolveUrl 来修复该问题。这不是我想要的修复方法,但它确实有效。我的同一个网站在另一台服务器上使用 NavURl 仍能正常运行,所以我确信这是某个服务器的设置问题,但目前应该可以解决。

相关内容