使用通配符DNS的正确方法是什么?

时间:2014-09-07 05:25:45

标签: apache subdomain wildcard virtualhost

我需要apache virtualhost遵循以下规则:

1-如果domain.com或www.domain.com在/var/www/domain.com/home中显示内容

2-如果blog.domain.com然后在/var/www/domain.com/blog

中显示内容

3-如果是通配符(*),则显示/var/www/domain.com/platform中的内容

为了实现这一目标,我按如下方式编辑了我的虚拟主机:

ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/domain.com/public_html/home

ServerName domain.com
ServerAlias blog.domain.com
DocumentRoot /var/www/domain.com/public_html/blog

ServerName domain.com
ServerAlias *.domain.com
DocumentRoot /var/www/domain.com/public_html/plataforma

DNS区域:

@ IN A 111.111.1.111

(*)CNAME @

的疑问:

我的方式是一种很好的做法?如果没有,怎么样?我是否需要在wwwblog的DNS区域中创建记录?

1 个答案:

答案 0 :(得分:1)

只要您的* .domain.tld条目指向正确的服务器并且只要所有3个网站都在同一主机上运行,​​您就不必在DNS中创建记录。如果您希望继续前进并将其中一个网站迁移到其他服务器,则必须将此特定子域添加到DNS。

我认为总的来说这不是一个非常糟糕的设置,但我不确定第二个和第三个网站的ServerName值是否应该与第一个不同。您可以将Alias用作ServerName,并在第二个和第三个条目中完全删除别名。