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

Apache2- need multiple projects with same domain that use different path after domain name

我有 2 个完全不同的项目,我想从同一个域名 "mysimpledomainname.com" 和 IP 地址 xx.xx.xxx.xx(非本地)

托管

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

我希望这 2 个项目像这样解决

项目 1

mysimpledomainname.com

项目 2

我的简单域名。com/project2

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

我已经从 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 个不同的 conf 文件才能执行此操作,但在四处搜索后我还没有找到解决方案。 谁能帮我这个?与其给出一个简短的答案,你能 post 正是我需要的 2 个不同的 conf 文件吗?

谢谢,

大卫

您只能有 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>