我想实现与 wordpress.com 类似的东西 - 为每个用户提供自己的子域。例如,在 Apache 的 VirtualHosts 设置中,user1.wordpress.com 的 DocRoot 位于 /user/user1。
现在,我们的托管服务提供商会收取创建域名的费用,而对于我们来说,这意味着价格相同的域名数量非常多。在对 DNS 进行一些谷歌搜索后,我找到了一个DNAME 记录。这似乎完全符合要求。有什么理由说明为什么我的服务提供商不这样做,或者为什么我不应该这样做?
答案1
我个人认为,你需要更换托管服务提供商。如果我理解正确的话,他们收费子域名否则完全免费创建和使用。
无论如何,插入此条目不应该有额外费用(除了他们似乎收取的费用)。他们不这样做的唯一原因是他们可以从你不愿意在其他地方获得更好的交易这一事实中获利。我不知道有哪个服务器设置不支持这个非常简单的功能(也就是说,Apache 和 Bind 开箱即用地支持它)。
怎么做:
A*.example.com
记录不一定是 DNAME 记录。您本质上想要的只是一个指向的普通 A 记录*.example.com
(1.2.3.4
其中 IP 代表网站托管的共享 IP。如果您不确定它是什么,只需查看您的example.com IN A
记录 - 它必须解析它):
*.example.com IN A 1.2.3.4
然后 Apache 将从那里获取它,只需设置VirtualHost
有正确的条目(我认为是ServerName
),*.example.com
并且所有内容都会正确匹配(即它将加载正确的DocumentRoot
)。
请注意:你无法避免 Apache 需要(手动)配置的事实。一些托管服务提供商可能不会这样做,如果他们不这样做,离开!