2010-07-16 35 views
22

我知道你可以编辑HOSTS文件来一个URL重定向到一个IP地址,像这样:编辑hosts文件重定向url?

127.0.0.1 google.com

但你如何强制重定向到URL而不是IP地址?

例如

mysite.com/welcome.aspx google.com

显式URL不工作,并假设mysite.com的IP是222.222.222.222,下列不工作之一:

222.222。 222.222/welcome.aspx google.com

回答

7

您不能。重定向需要Web服务器接受第一个请求并发回重定向。 “主机”文件只是让你设置你自己的DNS记录。

+4

没有理由为什么重定向无法在本地完成。 – Pacerier 2015-05-08 03:54:11

0

hosts文件:

1.2.3.4 google.com 

1.2.3.4 - IP您的服务器。

在服务器上运行脚本以将用户重定向到所需的url。

7

不,但你可以打开一个web服务器,例如,127.0.0.77,并使用它来检查请求URI是否“/welcome.aspx”...如果是重定向到谷歌,如果没有加载原始网站。

127.0.0.77  mysite.com 
+1

好点,我用这个作为一个权宜之计的广告拦截器。10域(它不能很好地扩展到更大数量的域,至少不是在Windows上) – Piskvor 2010-07-19 13:43:40

+1

@Piskvor,'hosts'文件应该扩展到数千行......请详细说明你的意思是“doesn '没有规模好',你有蓝屏吗? – Pacerier 2015-05-08 03:55:42

0

您可以在Apache中使用RedirectMatch指令来执行您想要的类似操作。

这很简单。

RedirectMatch/http://222.222.222.222/

反正我看不出有任何理由这样做那件事。你不是想拦截流量吗? 有更好的方法。对于作为路由器的Linux设备:iptables -j REDIRECT + Squid或Apache。对于思科路由器,您可以将WCCP用于高速缓存或Web服务器...

1

应用此技巧。

首先你需要你想要重定向到的url的IP地址。 假设你想重定向到stackoverflow.com 要找到它,请在命令提示符下使用ping命令。 式中:

ping stackoverflow.com 

进入命令提示符窗口,你会看到计算器的数字IP地址。 现在使用IP到您的主机文件

104.16.36.249 google.com

耶谷歌目前正在服刑计算器:)

+4

我知道这个线程很旧,但我想在这里添加一个注释。如果服务器使用CDN或虚拟主机,这个答案将不会工作。此**仅在**专用IP **的服务器上适用**。这个答案似乎是正确的,但对于StackOverflow的情况,它完全错误**。它使用Cloudflare作为CDN – mob41 2017-04-04 15:22:18