如何允许用户将他们的域映射到我网站上的 url?

Posted

技术标签:

【中文标题】如何允许用户将他们的域映射到我网站上的 url?【英文标题】:How do I allow users to map their domains to a url on my site? 【发布时间】:2010-11-01 09:01:30 【问题描述】:

如何允许用户将他们的域映射到我网站上的网址? (就像 tumblr 或博客所做的那样)

该应用程序正在 Django 中开发。我希望用户能够将他们的域映射到 mydomain.com/username(这可能吗,还是我需要像 username.mydomain.com 这样的格式?)

此外,我的应用程序在 VPS 上运行,因此我的名称服务器为 ns1.mydomain.com 和 ns2.mydomain.com。

【问题讨论】:

【参考方案1】:

最简单的方法是通过域隐藏。大多数域名提供商将允许用户使用此选项。

另一个简单的想法是为您的用户提供一个非常通用的 html 页面,该页面仅在 iframe 中包含他们在您网站上的 url,并将其放置为默认目录索引(例如 index.html)。

上述两个都将始终显示基本域(没有诡计)。如下所述,假设 CNAME DNS 记录能够编辑 DNS 记录,则可以解决此问题...

www.someuserdomain.com.  CNAME username.yoursite.com

【讨论】:

用户不需要使用 mod_rewrite,对吗? Blogger 只是指示用户为其域名或指向 ghs.google.com 的子域添加 CNAME 记录,这非常简单,并且比伪装或 iframe 效果更好。 是的,正如您发布的那样,我正在编辑它。你是对的,CNAME 记录比 A 记录更容易 这正是我正在寻找的。允许用户添加 cname 记录,然后在我的站点上使用域作为 url。我需要进行哪些设置才能使其正常工作? 我相信像 domain.com/username 一样,您可以使用 Apache VirtualHost 并将 ServerName 设置为该用户的自定义域(CNAME 记录的左侧)并将 DocumentRoot 指向用户的目录。 【参考方案2】:

在这种情况下,您必须咨询您的特定主机设置,以了解如何以编程方式更改您的 DNS 设置。您是否可以真正做到这一点取决于主机。如果您的服务器正在运行您有权访问的 DNS 服务器,您可以这样更改它。

【讨论】:

以上是关于如何允许用户将他们的域映射到我网站上的 url?的主要内容,如果未能解决你的问题,请参考以下文章

如何为用户“伪装”或“重命名”页面名称/位置/ URL,但仍允许外部站点通过HTTP_REFERER正确读取真实的URL

将网站上的用户重定向到我的 iOS 应用程序

允许用户将我的内容嵌入他们的网站(如博客)——rails 4

友好的 URL 并允许用户控制它们

如何将谷歌登录集成到我的网站并收集用户详细信息?

FluentNHibernate 异常:复合用户类型上的“属性映射的列数错误”