Nginx
將域和所有子域重定向到某個子域
我正在為我學校的校友會建立一個網站。我
myschool.com
從GoDaddy
. 在 GoDaddy 中,我已自定義DigitalOcean
為名稱伺服器。我想自定義 DigitalOcean 的 DNS,以便與域相關的所有內容
myschool.com
都可以重定向到alumni.myschool.com
. 確切地說,可以滿足以下所有條件:
- 如果在瀏覽器中輸入
alumni.myschool.com
或www.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.com
在www.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.com
和abc.myschool.com
都www.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.com
url。