如何在 apache2 站点配置文件中拥有动态 DocumentRoot?

如何在 apache2 站点配置文件中拥有动态 DocumentRoot?

我需要配置我的 evelynblac.com.conf 文件,以便任何带有子域的请求都会映射到以子域命名的目录(请参阅链接中的图片)。我该怎么做?

<VirtualHost *:80>
        ServerName evelynblac.com
        ServerAlias *.evelynblac.com
        ServerAdmin [email protected]
        DocumentRoot /var/www/*.evelynblac.com
        <Directory "/var/www/*.evelynblac.com">
                DirectoryIndex index.php
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我的 evelynblac.com.conf 文件的屏幕截图

PS:如果可能的话,我想要一个不需要我修改.htaccess 的解决方案。

答案1

你可能想看看mod_vhost_alias

使用此模块,您可以用变量替换虚拟主机,例如:

%0 用 FQDN 替换出现的内容,其他变量包括:

0   the whole name
1   the first part
2   the second part
-1  the last part
-2  the penultimate part
2+  the second and all subsequent parts
-2+     the penultimate and all preceding parts
 1+ and -1+     the same as 0

在您的示例中,您可能想要执行类似以下操作:

VirtualDocumentRoot /var/www/%0

最后,正如 yoonix 提到的,有很多方法,这只是其中之一。

相关内容