您能将某个 URL 映射到另一个 IP 吗?

您能将某个 URL 映射到另一个 IP 吗?

有一个类似的问题这篇文章只是说你需要设置一个网络服务器,但没有详细说明,这可能不是我想要的。另一个已经结束了这里,但处理了Linux并以编程方式重定向

我想要做的是,如果有人在我的 Windows 电脑上尝试访问某个 URL,例如“google.com/something?hello=1234”,它会将其映射到“10.0.0.1”。我尝试在我的主机文件上执行此操作,但没有成功(即使没有获取参数):(站点的 IP)(本地 IP)

答案1

假设网址是http://google.com/something?hello=1234放入你的 hosts 文件中,google.com 10.0.0.1如果你的 URL 是http://www.google.com/something?hello=1234在您的 hosts 文件中www.google.com 10.0.0.1,不要在域名后添加任何内容。但您确实添加了整个域名

执行“wget www.google.com/abcdefg?a=b -O index.html -d”

然后查看标题,您将看到它是否到达 10.0.0.1,并看到 GET 标题说 /abcdefg 并且任何参数都应该在那里。

我认为 hosts 文件的作用类似于快速 DNS 缓存,至少它是这样工作的,因此您无需在域名后指定任何内容,而且它也不会将其从您输入到浏览器中的 URL 中删除。它只是将域名更改为指定的 IP,其余部分则保留,我想这就是您想要的。

但是您可能需要一个您配置的 Web 服务器,因为如果您配置了它 wget www.google.com/abcdefg 并且它执行 10.0.0.1,并且这是您的路由器配置,那么这就像在未输入用户/密码的情况下访问您的路由器一样,因此您可能会从路由器获得未经授权的页面。此外,那里没有 abcdefg 目录。

您写道“我尝试在主机文件上执行此操作,但没有成功(即使没有 get 参数)”<-- 应该读取主机文件。您应该会得到效果并了解主机文件对浏览器意味着什么。

但是,如果您想以不基于域、而基于目录/参数或域+目录/参数的方式进行重定向,这样同一个域可以根据 http 请求中域后面的内容将您重定向到不同的 IP,那么 hosts 文件将无法做到这一点,我不确定什么可以做到这一点。您可以研究一下 squid 是否可以做到这一点,但您可能希望将其设置为透明代理,并查看它是否可以按照您想要的方式进行重定向。

相关内容