VirtualDocumentRoot 的动态子目录

VirtualDocumentRoot 的动态子目录

我在我的开发系统上使用 VirtualDocumentRoot 设置,因此我可以轻松地处理多个项目,而无需一直更新 VirtualHosts。

目前看起来像这样:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www
    VirtualDocumentRoot /var/www/%1
    ServerName everything.localhost
    ServerAlias *.localhost
</VirtualHost>

因此我可以通过调用 foobar.localhost 来访问 /var/www 下面的目录。

问题是我现在也有使用不同文档根目录的项目,例如存储库中有另一个 src、pub 或 public 文件夹,因此我想使用这些文件夹,但每个项目都不同。因此,我的想法是使用另一个级别扩展 VirtualDocumentRoot:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www
    VirtualDocumentRoot /var/www/%1/%2
    ServerName sub.everything.localhost
    ServerAlias *.*.localhost
</VirtualHost>

因此我可以使用 src.foobar.localhost 等来调用这些项目。不幸的是,这与之前的规则相冲突,因此我无法再访问没有额外子目录的“旧”项目。

有没有办法在一个 apache 配置中同时处理这两个 VirtualHosts/VirtualDocumentRoots?

我已经有了一个想法,即拥有另一个基本域,例如用于子目录的 localhost2,因此 ServerAlias 只会匹配该规则,但这不是首选解决方案。

答案1

将实际根目录符号链接到原始 vhost 目录怎么样?

ln -sTv /var/www/fullrepo-project.localhost/pub /var/www/project.localhost

相关内容