Apache-2.2
自動創建子域 (xyz.serverfault.com)
自動創建子域(如Basecamp)的最佳方法是什麼?
我的要求有點類似於 Basecamp,使用者從頁面請求子域,然後我從我的業務邏輯中為他們創建它。
我們在我們的網站上使用相同的技術。我們的伺服器在 Linux 上執行 Apache、MySQL 和 PHP。
我們的 DNS 記錄包含一個子域萬用字元條目,如 EK 已經建議的:
www IN A 123.456.789.012 * IN CNAME www
這會將所有到 xyyourdomain.com 的請求重定向到與 www.yourdomain.com 相同的 IP - 也可以有子域的子域。
我不知道 perl,但在 PHP 中,您可以隨時訪問主機名,如下所示:
$_SERVER['HTTP_HOST']
我確信 Perl 中有一個等價物可以訪問 HTTP-Request 的 Host-Header。為此,我們使用中央 PHP 腳本文件。
**編輯:**找到一些時間來提供有關處理這些域的更多詳細資訊。
您可以將完整的子域保存為數據庫中的主鍵。這保證了使用者輸入的域是唯一的。您還可以在使用者註冊期間使用此資訊進行可用性檢查。
我猜您的應用程序可以通過使用者 ID 或類似的方式處理多個使用者。只需將此使用者 ID 與數據庫中的子域一起保存即可。現在,您可以隨時通過 HTTP-Host 標頭髮送的目前域查找使用者 ID。