尝试理解CNAME如何影响URL

3
我正在创建一个CMS,在其中我希望利用CNAME允许客户使用他们的域名,但是将整个网站托管并运行在我的服务器上。我一直在寻找以下问题的答案,但没有结果。需要协助。
1] 是否可以设置CNAME来运行动态页面,以及...
2] 当为客户创建动态链接时,链接页面的URL地址栏是否会显示客户的域名,或者在后续动态页面中URL是否会恢复到我的域名,以及...
3] 是否必须为每个客户创建一个文件夹,还是可以直接从我的域名顶级使用动态页面,以及...
4] 如果需要单独的文件夹,是否必须是子域名?
感谢您提前的帮助......在开始我的预期目的的编程方面之前,理解这一点对我很重要。
欢迎任何想法和建议。
Pete
1个回答

4
一个CNAME记录是Canonical Name record的缩写,它是域名系统(DNS)中的一种资源记录类型,用于指定一个域名使用另一个域名的IP地址,即“规范”域名。

http://en.wikipedia.org/wiki/CNAME_record

它用于将一个域名映射到另一个域名,后者应该具有带有IP地址的A记录。

  1. 在您的情况下,您可以为每个客户设置CNAME记录。所有这些别名都可以指向您的主要“规范”域名。
  2. 浏览器不会更改URL。 但是,URL如何随着在您的站点周围的单击而更改取决于您如何编写HTML。 如果它们是相对链接,则浏览器不会更改域。如果它们是绝对链接,则URL将更改。
  3. 如果网站对所有用户的行为相同,则无需在多个文件夹中复制代码。但是,如果您需要根据访问它的客户不同而使网站的行为不同(例如标题、标志、颜色),则需要检测访问页面的客户端。您应该能够通过检查URL并使您的代码动态调整内容来实现此目的。如果网站的行为类似,则不需要单独的代码。
  4. 不需要单独的文件夹,即使需要也不需要子域。通常,Web服务器具有检查host headers以检测URL的功能,并且在同一IP地址上的不同网站可以具有不同的代码集

1
谢谢 @Riley Major... 我很欣赏你详细的回答。正如我所预料的那样,它对我很有帮助。你的回答既澄清了问题,又支持了我的假设... 现在开始编程吧...再次感谢 - petebolduc
我想知道,为什么你会在只能使用A记录的情况下还要使用CNAME呢?除了“我不必在多个地方更改IP地址”之外,有人知道其他原因吗? - Bojidar Stanchev
@BojidarStanchev 如果您在一组IP上运行很多域名,并且这些IP发生变化,您将需要更改很多A记录。如果您有相应的工具来管理,那么问题就不大了。但是,如果您手动处理,错误可能性更高,并且在您更改所有条目时会出现不一致或不准确数据的持续时间。 - Riley Major

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