【问题标题】:Django Let Users Add Custom DomainsDjango 让用户添加自定义域
【发布时间】:2015-08-13 04:27:53
【问题描述】:

我想允许用户在我的 Django 应用中将他们的域映射到他们的页面。因此,如果他们的页面位于:user.mydomain.com,我希望他们能够将他们的域映射到 url,使其变为:usersdomain.com。

我找到了这个答案,它让我了解了如何设置子域:

如果您控制域的名称服务器并有权访问 RNDC Key,您可以使用注册后视图/信号来喷出一个 cname 到您的 DNS 服务器,它将将 username.yoursite.com 解析为 yoursite.com。确保 apache 设置为接收通配符 virtualhost 到正确的应用程序,然后使用自定义中间件 阅读 request.META['SERVER_NAME'].lsplit('.')[0] 看看是什么 子域是。然后,您可以在视图中使用此信息来 区分用户子域。

但我不知道如何让用户将他们的域指向我的子域。

【问题讨论】:

    标签: python django dns


    【解决方案1】:

    我的处理方法是首先指导您的用户设置适当的 DNS 记录,以将他们的域指向您的域(可能是 CNAME)。

    然后您需要将settings.py 中的ALLOWED_HOSTS 设置设置为支持的通配符(*)。需要注意的是此配置会打开一个安全漏洞,因此您需要实现自己的主机验证,由 Django 实现recommended at the middleware level

    然后,您必须修改用于显示用户页面的任何技术。不匹配子域,而是匹配整个域。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-22
      • 2021-07-16
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      相关资源
      最近更新 更多