我正在尝试在 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——忽略!”