![如何在 apache2 站点配置文件中拥有动态 DocumentRoot?](https://linux22.com/image/674512/%E5%A6%82%E4%BD%95%E5%9C%A8%20apache2%20%E7%AB%99%E7%82%B9%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E4%B8%AD%E6%8B%A5%E6%9C%89%E5%8A%A8%E6%80%81%20DocumentRoot%EF%BC%9F.png)
我需要配置我的 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 提到的,有很多方法,这只是其中之一。