2014-09-02 132 views
0

有一個奇怪的域名指向我的服務器的IP地址。 有時DNS會變得困惑,它說我連接到該域而不是我自己的域。Nginx將外部域名重定向到我自己的域名

我嘗試了域名所有者和域名註冊商接觸,以除去DNS指向我的機器的記錄,但他們沒有幫助所有

現在我想重定向:

www.foreigndomain .COM

www.myowndomain.com

所以當有人類型或打開www.foreigndomain.com它會重定向到我的原始域名,而不是在www.foreigndomain.com下提供我的內容。

我試圖把它添加到nginx.conf:

server { 
    server_name .foreigndomain.com; 
    rewrite^http://www.myowndomain.com$request_uri? permanent; 
} 

,但是這將創建一個重定向循環,我不明白爲什麼。

我該怎麼做?

回答

2

重定向循環發生,因爲www.myowndomain.com匹配,做重定向在同一臺服務器,來解決這個問題創造另一臺服務器,以捕獲服務器名稱

server { 
    server_name .foreigndomain.com; 
    return 301 http://www.myowndomain.com$request_uri; 
} 
server { 
    server_name www.myowndomain.com; 
    location/{ 
    #config here 
    } 
} 

如果你已經有一個服務器的服務器名稱myowndomain.com那麼你需要添加www變種。

server { 
    server_name myowndomain.com www.myowndomain.com; 
    location/{ 
    # config here 
    } 
} 
+0

」您需要將www變體添加到myowndomain.com服務器名稱中。「 - 這個伎倆。你能解釋爲什麼在這種情況下需要www變體,如果它不是問題? – user1880779 2014-09-03 11:38:05

+0

在nginx中(我想大多數如果不是所有的web服務器)'www.domain.com'與'domain.com'不同,你可以用不同的方式處理每一個,比如將'domain.com'重定向到' www.domain.com',爲同一臺服務器使用不同的名稱,並將它們與同一行中的空格連接起來。 – 2014-09-03 11:48:10

0

試試這個重寫變種:

server { 
    server_name .foreigndomain.com; 
    return 301 http://www.myowndomain.com$request_uri; 
} 
+0

同樣的事情。重定向正在發生,但當我嘗試打開myowndomain.com時,我得到:「此網頁具有重定向循環」。我只是把它放在nginx.conf中,還是在啓用站點的文件夾中創建一個新的配置? – user1880779 2014-09-02 22:39:45

+0

您可以放在http {}部分的任何位置,並且「站點已啓用」是最好的位置。如果重定向起作用,那麼規則是正確的,但我認爲其他域設置有問題(www.myowndomain.com)。 「 – 2014-09-03 04:26:10