配置 Apache 以使用多个 VirtualDocumentRoot

配置 Apache 以使用多个 VirtualDocumentRoot

我正在尝试在 Windows 服务器上配置 Apache 2.4。

我需要两个不同的“动态配置的大规模虚拟主机”

  • 一个“简单”的文件夹,用于从“项目”硬盘上提供文件夹,
  • 另一个具有更多选项,适用于使用 Symfony php 框架的项目。

为了区分两者,我考虑使用 URL“例子”为文件夹“example”提供服务,并且“示例.symfony”使用 symfony vhost 配置为文件夹“example”提供服务。

这是我的httpd-vhosts.conf文件 :

# symfony virtual hosts
<VirtualHost *:80>
    ServerAlias *.symfony:80
    VirtualDocumentRoot "E:\%1\web"

    <Directory "E:\%1\web">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Allow from All
    </Directory>

    Alias /sf "E:\%1\lib\vendor\symfony\data\web\sf"
    <Directory "E:\%1\lib\vendor\symfony\data\web\sf">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>



# other virtual hosts
<VirtualHost *:80>
    ServerAlias *:80

    VirtualDocumentRoot "E:\%0"

    <Directory "E:">
        Options Indexes FollowSymLinks MultiViews
        IndexIgnore .git
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

使用此配置,example 和 example.symfony 都使用相同的设置。我猜 Apache 更喜欢ServerAlias*:80”,更具包容性?

我尝试过的:

  • 使用ServerName而不是ServerAlias,但它不允许使用 * 通配符。
  • 改变 vhost 定义的顺序,但这并没有改变任何事情。
  • 写作<VirtualHost *.symfony:80>,但这是无效的,Apache 说“无法解析主机名 .symfony——忽略!”

相关内容