StackOverflow 上已经有很多关于这个主题的问题,但我还是会插话并加上我的两美分的价值。:) 根据我的经验,这应该可以解决问题...
在我介绍细节之前:简而言之,您需要做的是设置 Apache 在收到请求时提供哪些信息。我在这里假设无论您的客户使用您的子域之一还是他们自己的域,您的服务器仍将托管博客?在这种情况下,重要的部分是客户的 VirtualHost 指令中的 ServerName。
下面是使用示例 URI 的这两种情况的示例,首先使用子域:
<VirtualHost *:80>
ServerName aaa.testweb.com
DocumentRoot /public_html/customers/aaa_html
# Other directives here
</VirtualHost>
其次使用专用域名:
<VirtualHost *:80>
ServerName www.aaa.com
DocumentRoot /public_html/customers/aaa_html
# Other directives here
</VirtualHost>
在 DNS 方面,每个指向您的网络主机的相关子域都应该有一条 A 记录,以便“aaa.testweb.com”的请求能够访问您的服务器。您可以通过将 *.testweb.com 指向您的服务器来轻松完成此操作,但这会将该域上的所有子域请求路由到您的服务器;如果请求的子域不存在,则将提供默认域站点。
我可能在这里弄错了,但我认为根据需要为每个新子域设置自定义 A 记录将有助于从长远来看更好地控制情况。
如果客户想要从一个选项切换到另一个选项,则 Apache 服务器上唯一需要的更新是他们的 VirtualHost 的 ServerName 规则。DNS 记录将通过相关的域注册商进行配置。