在Directory指令中使用variables

我在Debian上有Apache2,一些域名和多个子域名用于某些服务。 所以我试图为他们使用通配符虚拟主机

<VirtualHost *:8080> ServerName wildcard.domain.tld ServerAlias *.domain.tld UseCanonicalName Off VirtualDocumentRoot /home/domain.tld/public_html/service/%1/ DirectoryIndex index.php SetEnvIf HOST "^([^.]*)\.domain\.tld$" SERVICE=$1 <Directory /home/domain.tld/public_html/service/${SERVICE}/> Options FollowSymLinks MultiViews AllowOverride None RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [L] </Directory> </VirtualHost> 

我正在使用mod_vhost_alias模块来使VirtualDocumentRoot与%1 (其中包含主机名的子域部分)以简单的使用。 但是我不能在Directory指令中使用它,所以我必须设置环境variables。 这是无用的,因为Directory没有抓住它,这就是问题所在!

如何将包含子域的variables传递给Directory伪指令?

PS我很清楚这个问题是在重写,因为主页( / )正确加载VirtualDocumentRootDirectoryIndex指令都设置正确,但任何其他页面(比如说, subdomain1.domain.ltd/somepage )显示来自Apache的响应404 。 当我写my_service_name而不是${SERVICE} ,它适用于特定的服务。