使用 Windows Hosts 文件将外部 URL 重定向到子域?

使用 Windows Hosts 文件将外部 URL 重定向到子域?

我将直接发布这个问题,如果社区认为它需要详细说明或澄清,我就会对其进行编辑。

问题

今天我想到了一个我认为绝妙的主意。我经常在 Amazon.com 购物。亚马逊提供一项计划,您购买的所有商品中的一部分将捐给您选择的慈善机构“Amazon Smile”。您可以选择通过访问“smile.amazon.com”(amazon.com 的子域)来“激活”该慈善机构。我想使用 Windows 10 hosts 文件,每当我输入“amazon.com”时自动重定向到“smile.amazon.com”,这样我的慈善机构就会一直受益。不幸的是,它并没有像我希望的那样发挥作用。

我尝试过的

首先,我以管理员身份打开 Notepad.exe。然后,我从记事本中打开 hosts 文件(路径:)

C:\Windows\System32\drivers\etc\hosts

并尝试了以下所有方法,但均无济于事:

  • 直接 url 转换

    smile.amazon.com amazon.com

  • 使用 CMD 执行 ping 操作以获取 smile.amazon.com 的 URL(54.239.26.123

    54.239.26.123 amazon.com

  • 还添加了 www 子域名路由

    54.239.26.123 amazon.com 54.239.26.123 www.amazon.com

  • 这些似乎都没起作用(当我输入 _amazon.com_ 时,URL 栏中的地址并没有变为“smile.amazon.com”),但是出现了证书错误,我试了4个浏览器,包括Firefox、Chrome、SeaMonkey、IceDragon,(清除了所有浏览器的缓存),都没有用。

  • 根据此服务器故障帖子中,我尝试过这个:

    • ipconfig /flushdns
    • ping smile.amazon.com Pinging smile.amazon.com [54.239.26.123] with 32 bytes of data: Request timed out.
    • C:\WINDOWS\system32>nbtstat -R Successful purge and preload of the NBT Remote Cache Name Table.

证书/安全错误

进行上述更改后,我收到此错误:

铬合金:

你的连接不是私人的

攻击者可能试图从 www.amazon.com 窃取您的信息(例如密码、消息或信用卡)。NET::ERR_CERT_COMMON_NAME_INVALID

如果我单击“高级”,我将获得以下信息:

此服务器无法证明它是 www.amazon.com;其安全证书来自 smile.amazon.com。这可能是由于配置错误或攻击者拦截了您的连接所致。

当我单击继续访问 amazon 时,浏览器会将我带到 amazon.com,然后我会在 URL 中看到以下内容:

(https[crossed-out])://www.amazon.com


我的问题

所以,我想了解的是:

  1. 是否可以通过 Windows hosts 文件将 amazon.com 重定向到 smile.amazon.com?
  2. 我该怎么做?

答案1

DNS 解析和 HTTP 重定向是完全不同的事情,这种方法是错误的。毒害您的本地 DNS 解析以强制将“amazon.com”解析为假的“smile.amazon.com”IP 只会导致服务器端出现 SSL 证书、HTTP 会话和跨站点请求拒绝问题:

首先,SSL 证书。amazon.com 和 smile.amazon.com 使用子域特定证书提供服务,因此如果 URL 请求与证书名称不匹配,浏览器会向用户显示错误。因此,如果您向支持“smile.amazon.com”的服务器请求“amazon.com”资源,即使在执行 HTTP 请求之前,您的浏览器也会因证书名称不匹配而向您发出警告。当然,您可以忽略这一点,但支持应用程序逻辑的 javascript 可能不会在跨域请求的情况下出现,从而使网络完全无用。

其次,如果您以任何方式绕过 SSL 问题,您的浏览器将向 smile.amazon.com 发送请求,询问 amazon.com 内容,这将导致服务器端启动各种安全机制来拒绝此类跨站点请求。

最后,预计服务器端会话管理、身份验证、cookie 验证等会出现各种问题。

答案2

我正在寻找一种解决方案来将 URL 重定向到另一个 URL,然后找到了这个帖子。我认为其他人可能会觉得我的发现很有用,即使它不是您问题的直接答案,但它仍然是问题的解决方案。

我建议你尝试使用类似这样的插件,而不是在 Windows 中编辑 hosts 文件重定向器对于 Firefox 或Chrome 重定向器

它非常有效,可以阻止我在不想要的时候浏览某些网站,例如为了提高工作效率,或者强迫自己使用新服务。可以想象使用重定向器停止使用 hotmail.com 并使用另一项自定义服务,例如,无需改变任何其他习惯。

答案3

如果你是 Chrome 用户,这也许能帮助你解决问题:

永远微笑是一款 Chrome 扩展程序,可自动将您重定向至smile.amazon.com

答案4

  1. NBTSTAT 是一个 NetBIOS 工具,与 DNS 无关。

  2. 如果您希望 amazon.com 通过主机文件解析为 smile.amazon.com 的 IP 地址,那么在添加主机文件条目后,您需要 ping amazon.com,而不是 smile.amazon.com。您的目标是将 amazon.com 解析为 smile.amazon.com 的 IP 地址,因此您应该在测试中使用名称 amazon.com,以确保它解析为 smile.amazon.com 的 IP 地址。

  3. 如果您使用 smile.amazon.com 的 ip 地址在 hosts 文件中为 amazon.com 添加条目,并且 ping amazon.com 返回 smile.amazon.com 的 ip 地址,则表示 hosts 文件正在运行。如果您的浏览器仍将您定向到 amazon.com,则这与您的 hosts 文件无关。

相关内容