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

Dav*_*ugh 3 configuration apache2 virtualhost

我有两个完全不同的项目,我想从同一域名"mysimpledomainname.com"托管,IP地址为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>
Run Code Online (Sandbox Code Playgroud)

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

谢谢,

大卫

Mar*_*555 6

您只能有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>
Run Code Online (Sandbox Code Playgroud)