Apache-2.2

自動創建子域 (xyz.serverfault.com)

  • August 16, 2019

自動創建子域(如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。

引用自:https://serverfault.com/questions/86696