Apache2 Apache VirtualDocumentRoot最佳设置

Apache2 Apache VirtualDocumentRoot最佳设置,apache2,directory-structure,virtualhost,Apache2,Directory Structure,Virtualhost,我希望使用VirtualDocumentRoot进行干净、高效的目录设置。(参考:) 我特别想到以下几点: 1) 由/apache_root/example.com提供服务 2) 由/apache_root/www/example.com或/apache_root/example.com/www或/apache_root/example.com提供服务(其中任何一个都可以。但为了效率起见,我不想使用重定向) 3) 应该由/apache_root/example.com/abc提供服务(基本上,它

我希望使用VirtualDocumentRoot进行干净、高效的目录设置。(参考:)

我特别想到以下几点:

1) 由/apache_root/example.com提供服务

2) 由/apache_root/www/example.com或/apache_root/example.com/www或/apache_root/example.com提供服务(其中任何一个都可以。但为了效率起见,我不想使用重定向)

3) 应该由/apache_root/example.com/abc提供服务(基本上,它应该是/apache_root/example.com中的目录)

现在是棘手的部分::

使用此处列出的目录名插值方法可以实现上述所有功能:

但是:

如何处理这样一个事实,即example.com实际上甚至可以是example.co.in

(对于基本目录,如果我在example.co.in上使用%2+,它将给我co.in,但我需要example.co.in。%1+在,将给我abc.example.com作为基本目录,而不是我想要的example.com)

基本上,我希望有一条规则能够始终如一地适用于: 1) www.abc.example.com
2) abc.example.com 3) www.abc.example.co.in 4) abc.example.co.in

(注:显然,域名的最高级别是127。这意味着0.1.2.3.4.example.com几乎是可能的)

干杯


JP

如果您只有两个域,那么只需两个
虚拟主机即可:

<VirtualHost *:80>
  ServerDomain example.com
  ServerAlias *.example.com
  VirtualDocumentRoot /var/www/%-2%-1/%-3+
</VirtualHost>
<VirtualHost *:80>
  ServerDomain example.co.in
  ServerAlias *.example.co.in
  VirtualDocumentRoot /var/www/%-3%-2%-1/%-4+
</VirtualHost>

ServerDomain example.com
ServerAlias*.example.com
VirtualDocumentRoot/var/www/%-2%-1/%-3+
ServerDomain example.co.in
ServerAlias*.example.co.in
VirtualDocumentRoot/var/www/%-3%-2%-1/%-4+
你明白了