Apache:如何为一个ServerName拥有多个站点?

时间:2018-04-03 12:10:42

标签: apache

我有一个网站testing.mycompany.com/api和testing.mycompany.com/web。如何在apache中配置它?

<VirtualHost *:80>

        ServerName testing.somedomain.com
        ServerAlias testing.somedomain.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/project-2/

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>


<VirtualHost *:80>

        ServerName testing.mycompany.com/api
        ServerAlias testing.mycompany.com/api

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/project-1/

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我按上述方式配置时,会有第一个虚拟主机(testing.somedomain.com)的回退。

当我删除/ api时,它就可以了。但是我想用/ web配置另一个虚拟主机。我怎么能做到这一点?显然ServerName不允许在根URL之后的路径?

1 个答案:

答案 0 :(得分:1)

testing.mycompany.com是ServerName

/ api和/ web为AliasLocation

如果/ api和/ web位于文档根目录之外,则必须使用别名。

前:

test.mycompany.com的文档根目录= / var / www /

/ api是/ opt / myapi

中的html页面

/ web是/ opt / web

中的php页面

因此,在您的serverName中,您需要2个别名。

<VirtualHost *:80>

        ServerName testing.mycompany.com
        ServerAlias testing.mycompany.com

        Alias /api /path/to/folder/where/is/api/files
        Alias /web /path/to/folder/where/is/web/files

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/project-1/

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>