我想允许用户在Django应用中将他们的域映射到他们的页面。因此,如果他们的页面位于:user.mydomain.com,我希望他们能够将他们的域映射到网址,使其成为:usersdomain.com。
我找到了这个答案,让我了解了如何设置子域名:
如果您控制域的名称服务器并且可以访问该域名 RNDC键,你可以使用后注册视图/信号来喷出一个 cname到您的DNS服务器,将username.yoursite.com恢复为 yoursite.com。确保已设置apache以接收通配符 virtualhost到正确的应用程序,然后使用自定义中间件来 读取request.META ['SERVER_NAME']。lsplit('。')[0]看看是什么的 子域名是。然后,您可以在视图中使用此信息 区分用户子域。
但是我不知道如何让用户将他们的域指向我的子域。
答案 0 :(得分:0)
首先,我会指示您的用户设置相应的DNS记录,将其域名指向您的域名(可能是CNAME)。
然后,您需要将ALLOWED_HOSTS
中的settings.py
设置设置为支持的通配符(*)。需要注意的是,此配置会打开一个安全漏洞,因此您需要实现Django自己的主机验证,recommended at the middleware level。
然后,您必须修改用于显示用户页面的任何技术。而不是匹配子域,匹配整个域。