2011-02-24 55 views
2

我正在努力了解如何使用自定义域名与我的应用程序。它有一个常用的应用程序分配用户到子域名,例如。 user.theapp.com,他们希望使用CNAME,以便m.theirsite.com解决该应用程序。看起来大多数这样做的服务要求你告诉他们你的自定义域名是什么,只是添加一个CNAME记录是行不通的。步骤:带CNAME的自定义子域名问题

  1. 用户创建一个帐户。
  2. 我们告诉他们,他们可以向yourstuff.theapp.com(这是当前位置)创建CNAME条目。
  3. 这是我的困惑。 1 & 2我的自定义域名仍然没有工作..所以一旦客户制作了CNAME记录并向我们提供了“m.theirsite.com”,我们用它做了什么特别的魔法让这些网站“相同”?

在此先感谢您。

回答

3

我们的解决方案是使用PHP/MySQL来解决这个问题。正常情况下,您应该将外部域名/子域名CNAME注册到您的应用,但是您会看到,CNAME条目不需要适用于应用上的确切子域名。接下来,您将在数据库中建立一个区域,用户可以告诉您哪些外部网站具有CNAME。此时,您将基于HTTP主机在网站上执行大部分身份验证,包括抓取子域并将其用作客户端,或者检查HTTP主机是否位于您的CNAME列表中,然后从那里引用客户端。

CNAME所做的只是指向服务器位置,因此如果您在apache配置中使用通配符,foo.myapp.com会解析为与bar.myapp.com相同的位置,但在应用程序中可以使用主机拉出子域并找到客户端(“foo”和“bar”)。当使用CNAME时,如m.mywebsite.com --cnamed - > foo.myapp.com,应用程序不再在HTTP主机中拥有该客户端信息,并且正如我们所提到的那样,apache通配符设置(* .myapp。 com)只是抛出了子域..因此,客户端必须告诉我们“我将从m.mywebsite.com访问,所以为我的身份验证创建一个有效的主机名。”