我需要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 @
的疑问:
我的方式是一种很好的做法?如果没有,怎么样?我是否需要在www
和blog
的DNS区域中创建记录?
答案 0 :(得分:1)
只要您的* .domain.tld条目指向正确的服务器并且只要所有3个网站都在同一主机上运行,您就不必在DNS中创建记录。如果您希望继续前进并将其中一个网站迁移到其他服务器,则必须将此特定子域添加到DNS。
我认为总的来说这不是一个非常糟糕的设置,但我不确定第二个和第三个网站的ServerName值是否应该与第一个不同。您可以将Alias用作ServerName,并在第二个和第三个条目中完全删除别名。