2011-02-24 88 views
2

我正在努力瞭解如何使用自定義域名與我的應用程序。它有一個常用的應用程序分配用戶到子域名,例如。 user.theapp.com,他們希望使用CNAME,以便m.theirsite.com解決該應用程序。看起來大多數這樣做的服務要求你告訴他們你的自定義域名是什麼,只是添加一個CNAME記錄是行不通的。步驟:帶CNAME的自定義子域名問題

  1. 用戶創建一個帳戶。
  2. 我們告訴他們,他們可以向yourstuff.theapp.com(這是當前位置)創建CNAME條目。
  3. 這是我的困惑。 1 & 2我的自定義域名仍然沒有工作..所以一旦客戶製作了CNAME記錄並向我們提供了「m.theirsite.com」,我們用它做了什麼特別的魔法讓這些網站「相同」?

在此先感謝您。

回答

3

我們的解決方案是使用PHP/MySQL來解決這個問題。正常情況下,您應該將外部域名/子域名CNAME註冊到您的應用,但是您會看到,CNAME條目不需要適用於應用上的確切子域名。接下來,您將在數據庫中建立一個區域,用戶可以告訴您哪些外部網站具有CNAME。此時,您將基於HTTP主機在網站上執行大部分身份驗證,包括抓取子域並將其用作客戶端,或者檢查HTTP主機是否位於您的CNAME列表中,然後從那裏引用客戶端。

CNAME所做的只是指向服務器位置,因此如果您在apache配置中使用通配符,foo.myapp.com會解析爲與bar.myapp.com相同的位置,但在應用程序中可以使用主機拉出子域並找到客戶端(「foo」和「bar」)。當使用CNAME時,如m.mywebsite.com --cnamed - > foo.myapp.com,應用程序不再在HTTP主機中擁有該客戶端信息,並且正如我們所提到的那樣,apache通配符設置(* .myapp。 com)只是拋出了子域..因此,客戶端必須告訴我們「我將從m.mywebsite.com訪問,所以爲我的身份驗證創建一個有效的主機名。」