答案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 是否可以做到这一点,但您可能希望将其设置为透明代理,并查看它是否可以按照您想要的方式进行重定向。