Apache2-需要具有相同域的多个项目,这些项目在域名后使用不同的路径

时间:2015-06-12 22:43:27

标签: configuration apache2 virtualhost

我有2个完全不同的项目,我想用同一个域名“mysimpledomainname.com”托管,地址为xx.xx.xxx.xx(非本地)

这2个项目位于 项目1)/ var / www / html / project1 项目2)/ var / www / html / project2

我想让这两个项目像这样解决

项目1

mysimpledomainname.com

项目2

mysimpledomainname.com/project2

我不想使用子域名。这是我的公共服务器上的项目,而不是我的本地机器,所以我认为更新主机文件不会对我有帮助。

我已经从mysimpledomainname.com加载了第一个项目(它已经在运行)。

在目录sites-available中,我有一个conf文件mysimpledomainname.com.conf,其值为:

<VirtualHost *:80>
        ServerAdmin myemail@gmail.com
        DocumentRoot /var/www/html/project1
        <Directory /var/www/html/project1/>
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
                RewriteEngine On
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我认为我需要设置2个不同的配置文件才能执行此操作,但在搜索后我无法找到解决方案。 谁能帮我这个?您可以准确发布我对2个不同配置文件所需的内容,而不是简短的回答吗?

谢谢,

大卫

1 个答案:

答案 0 :(得分:5)

您只能拥有1个VirtualHost指令,因为这是根据FQDN定义的,并且您只想使用mysimpledomainname.com

Project1 的配置正常。您只需要在路径/project2下提供另一个目录。为此,您需要使用Alias指令。

所以你的最终配置应该是这样的(当然,如果你愿意,你可以为每个子目录分别配置Directory):

<VirtualHost *:80>
        ServerAdmin myemail@gmail.com
        DocumentRoot    /var/www/html/project1
        Alias /project2 /var/www/html/project2
        <Directory /var/www/html/>
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
                RewriteEngine On
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>