0

我正在尝试使用 2 个虚拟主机设置我的 apache:

Listen 11.22.33.44:8080

<VirtualHost *>
    ServerName servername.com/stable
    DocumentRoot /home/deploy/producao/servername.com/current/public
    <Directory /home/deploy/producao/servername.com/current/public>
        # This relaxes Apache security settings.
        AllowOverride all
        # MultiViews must be turned off.
        Options -MultiViews
    </Directory>
</VirtualHost>

<VirtualHost *>
    ServerName servername.com/stable
    DocumentRoot /home/deploy/teste/servername.com/current/public
    <Directory /home/deploy/teste/servername.com/current/public>
        # This relaxes Apache security settings.
        AllowOverride all
        # MultiViews must be turned off.
        Options -MultiViews
    </Directory>
</VirtualHost>

但一切都错了。我想要的是,当我键入 servername.com/stable 时,我得到一个文档根目录,而当我使用 servername.com/testing 时,我得到另一个文档根目录。

我尝试了几件事,但没有奏效,比如

<VirtualHost servername.com/stable>
<VirtualHost servername.com/testing>

并使用

ServerName servername.com
ServerPath /stable
...
ServerName servername.com
ServerPath /testing

但这些都不起作用。

4

1 回答 1

0

你的ServerName指令不正确。您只能使用该指令指定 DNS 主机名,而不是服务器路径。例如

ServerName example.com
ServerName example.net

会是正确的。您只是想在相同服务器名称的子目录中托管两个不同的站点。为此,您不需要两个虚拟主机指令。只是一个<Directory><Location>在一个虚拟主机内,例如

<VirtualHost *>
    ServerName example.com
    <Location /site1>
        ... site1 settings here
    </Location>
    <Location /site2>
        ... site2 settings here
    </Location>
</VirtualHost>
于 2013-08-16T15:30:23.807 回答