我现在想弄清楚的是设置自定义域托管,以便用户可以在他们选择的任何域上托管个人资料页面。我现在能够让它工作,但它需要大量的定制工作。
我目前的设置是让用户更改其DNS设置以重定向到我的域。然后在我的域上添加另一个虚拟主机来处理这个新域,然后更新我的Django中间件以查看请求中的PATH_INFO,以便选择要服务的页面。
有没有办法可以将其更改为自动执行此过程,这样可以完全自动完成而无需修改Apache或中间件?我正在考虑使用mod_rewrite将此信息传递到Django中的特定页面,然后在表中进行查找以查看此页面要显示的页面。
答案 0 :(得分:3)
您应该能够设置您的网络服务器,使其接受任何指向它的域名。完成后,用户只需创建一个将其域或子域指向您网站IP地址的A记录,然后他们的域名就会显示您的网站。
然后,您只需要在视图中设置一些域检查(request.get_host()
)。例如,您的索引视图应该在主机上分支,为您的域加载主页以及为任何其他域加载用户的配置文件。您可以让用户将其域添加到其配置文件中,然后使用该域查找正确的配置文件。您可能需要添加一些中间件来保护其他视图不被您的域访问,但这基本上就是这个过程。