DocumentRoot上的通配符用于虚拟主机

我在apache2中使用这个configuration作为通配符子域,效果很好:

<VirtualHost *:80> DocumentRoot /var/www/ ServerName sumdomains.example.com ServerAlias *.example.com RewriteEngine On RewriteRule ^/(.*) /%{HTTP_HOST}/$1 </VirtualHost> 

这意味着,对http://user.example.com/foo.html的请求将获取文件/ var / www / user.example.com /foo.html。

但我想请求http:// user .example.com / foo.html从/ var / www / user / foo.html获取文件。

我应该使用哪个通配符

设置重写规则抓住sub.domain并redirect到/ sub / requestedFile

 RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9-]+)\.example.com$ RewriteRule ^(.+) /%1/$1 [L,QSA] 

或者将VirtualDocumentRoot设置为代表子域的%-1。

 <VirtualHost *:80> VirtualDocumentRoot /var/www/%-1 ServerName sumdomains.example.com ServerAlias *.example.com </VirtualHost>