多個網域指向同一個網站

多個網域指向同一個網站

我是一個相當熱心的程式設計師,但最近轉向網頁開發,所以如果這個問題有點愚蠢,我深表歉意。

我正在建立一個應該支援多個網域的電子商務網路應用程式。假設我的應用程式中運行著 2 個商店,每個商店都有自己的自訂網域。

應用程式位於:www.main-app.com
商店 1 位於:www.store1.com
商店 2 位於:www.store2.com

我需要將所有發出的請求重定向store1.comstore2.com傳遞main-app.com一個 id,即商店 Id。 store Id 用於載入每個 store 的所有元件。

我已成功將 CNAME 記錄新增至指向 的 store1 和 store2 www.main-app.com。到目前為止一切順利,當我www.store1.com在瀏覽器中輸入內容時,主應用程式會顯示在螢幕上,但是我如何傳遞商店 ID 以便它知道要加載哪個商店?

哪種方法是實現此功能的最佳方法?

本質上,我想輸入www.store1.comwww.main-app.com接收載入 store1 的請求。我不想使用網域轉發,例如打字www.store1.com,它將用戶重定向到類似www.main-app.com?storeId=1.

我希望我說清楚了。

答案1

網頁瀏覽器將會發送一個Host標頭以及對您的網路應用程式的每個請求。該標頭將包含用於存取該網站的網域。您可以使用此標頭根據使用者造訪網站時使用的網域來變更網站的外觀和風格。

答案2

任意數量的記錄可以指向同一台伺服器,這將使該伺服器獲得來自所有網域的請求。通常,這用於使用一台 Web 伺服器託管多個網域。自 HTTP 1.1 起,伺服器就知道請求是針對哪個請求的,HTTP 1.1 在標頭中加入了一個欄位來表示所要求的主機名稱。

在 Apache 上,當您託管多個網域時,您將建立一個 VirtualHost,並通常為每個網域提供一個指向其檔案位置的路徑。對於您所描述的內容,您將為每個商店建立一個虛擬主機,但將其所有根資料夾設定為包含主應用程式檔案的相同路徑。

在應用程式本身中,您甚至不需要 ID,因為所有請求都會包含一個字段,該字段告訴您請求是針對哪個主機。這樣您就可以索引商店之間不同的任何資料。在這種情況下不需要重定向任何內容。

Apache 可以使用 RewriteRule 來自動化這個過程,這需要模組重寫安裝並啟用。您所做的事情告訴它根據請求的網域調用具有不同參數的頁面。例如,您可以告訴它要按照您的建議向每個請求新增 storeId,並使用該 storeId 來驅動邏輯。其他網頁伺服器可能有類似的東西,我只是使用 Apache 來描述它,因為它是我最了解的。

相關內容