将真实域配置为子域(通配符子域)?

时间:2012-08-27 04:29:33

标签: apache dns subdomain wildcard

我们正在提供博客平台,我们将每个用户与通配符子域(aaa.testweb.com)分开。如果他愿意,我们希望我们的用户能够切换到他的域名(www.aaa.com)。如何配置Apache服务器以支持以下方案?

请告知除httpd.conf之外是否还有其他配置。

EX:
1.转到 www.aaa.com 并显示 aaa.testweb.com 的内容 (地址栏中的网址为 www.aaa.com
2.转到 www.aaa.com/content 并显示 aaa.testweb.com/content 的内容 (地址栏中的网址为 www.aaa.com/content

1 个答案:

答案 0 :(得分:0)

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记录将通过相关的域名注册商进行配置。