自定义子域名的CNAME问题

3

我有些困惑如何使用自定义域名来运行我的应用程序。这是一个常见的情况,即应用程序将用户分配到子域名下,例如 user.theapp.com,并且他们希望使用 CNAME 让 m.theirsite.com 解析到该应用程序。似乎大多数提供此服务的服务商都要求您告诉他们您的自定义域是什么,而仅添加 CNAME 记录不起作用。步骤如下:

  1. 用户创建账户。
  2. 我们告诉他们可以在 yourstuff.theapp.com(当前位置)上创建 CNAME 条目。
  3. 这是我的困惑。在完成步骤 1 和 2 后,我的自定义域仍然无法正常工作...因此,一旦客户端创建了 CNAME 记录并向我们提供“m.theirsite.com”,我们需要做什么特别的操作才能使这些站点“相同”?

提前感谢。

1个回答

4
我们的解决方案是使用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访问,因此请将其作为我的身份验证的有效主机名。”

嘿,马特,谢谢你的回答。这是否意味着,如果用户将其自定义域名命名为user.myapp.com或myapp.com都无所谓?我的意思是CNAME值并不重要吗?许多服务指示用户将其cname到user.theirapp.com,因此我认为它有一些好处。 - Sodbileg Gansukh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接