2

我想在我的 Windows 2008 R2 服务器上做一些测试。也就是说,让一个 URL 重定向到localhost.

例如,让"http://mysample.mydomain.com/index.html"实际访问“http://localhost/index.html”。有什么办法可以做到这一点吗?

我试图编辑windows\system32\drivers\etc\hosts文件,添加127.0.0.1 -> mysample.mydomain.com映射,但它不起作用。看起来127.0.0.1localhost不一样。我可以访问“http://localhost/index.html”,但无法访问“http://127.0.0.1/index.html”!

提前致谢!

4

2 回答 2

0

编写从 System.Web.UI.Page 继承的类,然后在加载时覆盖:

public abstract class CorePage : Page
{
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        //TODO: check request url and make a redirect if required!

    }
}

将所有页面更改为从 CorePage 继承,工作就完成了!这当然只适用于应用程序级别的 aspx 页面,而不适用于整个 IIS。

于 2012-09-03T07:52:57.920 回答
0

由于您使用的是 Windows 2008 R2 服务器,我猜您正在使用 IIS 进行测试。另请注意,Windows Server 2008 是第一个默认“启用”IPv6 的 Windows 版本 - 但您的 IPv4 版本是否也启用了...?

Enable IPv4: [Control panel > Network and sharing center > Change adapter settings > Right click the adapter used for connectivity and select properties > See if IPv4 is checked. ]

我认为您的 localhost 在内部已被解析为使用 ::1 (IPv6) 环回地址。您可以通过检查来确认:

对于 IPv6 测试:ping localhost -6和对于 IPv4 测试:ping localhost -4. 如果它解析为 ::1,则它使用 IPv6 地址。

您的 \etc\hosts 文件应包含以下条目:

::1 locahost mysample.mydomain.com

现在做一个 ping 测试ping mysample.mydomain.com -6。这应该确认 mysample.mydomain.com 已使用 IPv6 解析为您的本地环回地址。

参考:

  1. 127-0-0-1 和 localhost 之间的区别
  2. 本地主机
于 2012-10-16T17:34:22.783 回答