2010-07-16 31 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