萬用字元 DNS 條目以匹配 lang 子域
我們有一個指向 xxx1 的網站 www.example.com 和一個包含多個迷你站點的系統,所有這些迷你站點都有指向 xxx2 的 subdomains.examples.com
基本上我們所擁有的是一個萬用字元 DNS 條目,它基本上可以匹配任何可能的子域,一旦到達 xxx2,apache vhost 將攔截並基本上將其重定向到一個 php 腳本,後者又會知道要服務哪些迷你站點。
然而,在 www.example.com 上,我們提供翻譯成多種語言的內容,直到幾週前,您還可以通過點擊標誌來切換語言,然後您就會收到翻譯後的內容。唯一的問題是 URL 不會改變,而且 SEO 明智,這不是最好的解決方案。
現在我不能改變子域的處理方式(被重定向到 xxx2),因為我們有數百個,如果不是數千個迷你站點。
我必須想出一個解決方案,讓 language.example.com 重定向到 xxx1,然後是一個重寫規則,該規則基本上會將假子域重寫為 URL,以便將語言的參數傳遞給 example.com
解決方案是在萬用字元 DNS 條目之前將所有可能的語言列為 DNS 條目。我幾乎可以肯定不可行的另一種解決方案是在 DNS 條目中使用某種正則表達式,以匹配所有帶有 2 個字母的子域( en|es|fr|cn|cl 等…)
有任何想法嗎?
您不能在 DNS 中進行兩個字母匹配,萬用字元專門匹配一個或多個標籤,這就是 DNS 中模式匹配的全部範圍。
您是否考慮過
www.example.com/language/
改用?然後在您的重寫規則中,您可以(例如)
en.example.com
重定向到www.example.com/en/
,這可以基於檢查該特定語言的子目錄是否存在的條件測試來完成。如果該子目錄不匹配,則它將代表您的迷你站點之一。