Nginx

將域和所有子域重定向到某個子域

  • August 24, 2015

我正在為我學校的校友會建立一個網站。我myschool.comGoDaddy. 在 GoDaddy 中,我已自定義DigitalOcean為名稱伺服器。

我想自定義 DigitalOcean 的 DNS,以便與域相關的所有內容myschool.com都可以重定向到alumni.myschool.com. 確切地說,可以滿足以下所有條件:

  • 如果在瀏覽器中輸入alumni.myschool.comwww.alumni.myschool.com,我希望 URL 變為alumni.myschool.com,並且瀏覽器在我的伺服器 IP 中顯示我們的關聯站點178.62.87.73
  • 如果輸入錯誤的子域,例如abc.myschool.com在瀏覽器中,我希望 URL 仍然變為alumni.myschool.com,並且瀏覽器在我的伺服器 IP 中顯示我們的關聯站點178.62.87.73
  • 如果只是進入域,即www.myschool.comwww.myschool.com瀏覽器中,我希望 URL 仍然成為alumni.myschool.com,並且瀏覽器在我的伺服器 IP 中顯示我們的關聯站點178.62.87.73

由於時差和 DNS 記憶體問題,很難嘗試和測試設置;很難說這是錯誤的設置還是只需要等待。

那麼誰能給我一個完整的記錄列表(A,CNAME …)來實現這一點?

編輯2:

在第一個答案之後,我添加了 4 個 A 記錄.,它們變成了

@         IN  A   178.62.87.73
alumni    IN  A   178.62.87.73
*         IN  A   178.62.87.73
*.alumni  IN  A   178.62.87.73

我在我的伺服器中添加了以下伺服器塊:

server {
       listen 80;
       listen [::]:80;

       server_name myschool.com *.myschool.com;
       return 301 $scheme://alumni.myschool.com$requrest_uri;
}

並且伺服器alumni.myschool.com保持不變:

server {
       ...
       server_name alumni.myschool.com;
       ...
}

結果是 , myschool.com,www.myschool.comabc.myschool.comwww.abc.myschool.com可以www.alumni.myschool.com成功重定向到alumni.myschool.com

我認為最需要注意的是,您描述的實際重定向不會在 DNS 中完成。

你可以做這樣的事情(最少):

example.com.         IN  A   178.62.87.73
*.example.com.       IN  A   178.62.87.73

但是,對於您打算使用的實際名稱沒有明確的記錄對於人類同胞來說並不是那麼清楚。

為了清楚起見,您可能需要添加:

alumni.example.com.    IN  A   178.62.87.73
*.alumni.example.com.  IN  A   178.62.87.73

(僅第一條記錄將結束區域頂點下的萬用字元適用的範圍。)

實際上會讓你得到你想要的行為的是配置你的網路伺服器來為你的請求提供實際內容,alumni.example.com對於所有其他example.com名稱,只需重定向 (301) 到相應的alumni.example.comurl。

引用自:https://serverfault.com/questions/716162