2015-05-30 39 views
1

我想允許用戶在我的Django應用中將他們的域名映射到他們的頁面。因此,如果他們的頁面位於:user.mydomain.com,我希望他們能夠將他們的域映射到url,以便它變成:usersdomain.com。Django讓用戶添加自定義域名

我發現這個答案,讓我如何設置子域的一個想法:

如果控制域的域名服務器,並有機會獲得 RNDC鍵,您可以使用註冊後視圖/信號將一個 cname噴射到您的DNS服務器上,該服務器將username.yoursite.com轉換爲 yoursite.com。確保apache設置爲接收通配符 virtualhost到正確的應用程序,然後使用自定義中間件到 讀取request.META ['SERVER_NAME'] .lsplit('。')[0]以查看 子域的內容是。然後,您可以在您的視圖中使用此信息來區分用戶子域。

但我不知道如何讓用戶將他們的域名指向我的子域名。

回答

0

我會如何處理這個問題,首先,請您的用戶設置相應的DNS記錄,以將其域名指向您(可能是CNAME)。

然後,您需要將settings.py中的ALLOWED_HOSTS設置設爲支持的通配符(*)。需要注意的是這種配置會造成安全漏洞,所以您需要實現Django自己的主機驗證,recommended at the middleware level

然後,你必須修改你用來顯示用戶頁面的任何技術。而不是匹配子域,匹配整個域。