Apache 虚拟主机 - 将同一域(或 IP)的不同路径映射到不同的站点

Apache 虚拟主机 - 将同一域(或 IP)的不同路径映射到不同的站点

我正在运行 Apache/2.4.29 (Ubuntu)。
我只有一个域名。
我想将不同的网站映射到域名后的不同路径。

例如:

mydomain.com/test001映射到/var/www/test001/public
mydomain.com/test002映射到/var/www/test002/public

我已经尝试过许多不同的虚拟主机配置,但都不起作用。
有人能告诉我虚拟主机的正确语法吗?

编辑 我根据@JoeSlav 给出的答案更改了我的配置,
现在这是我的虚拟主机配置

<VirtualHost *:80>
    ServerName test06.com
    ServerAlias www.test06.com
    DocumentRoot /var/www/test06/public

    Alias /test03/ /var/www/test03/public
    Alias /test04/ /var/www/test04/public

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

当我要求http://test06.com/test03/我进入了目录列表页面。我可以在列表中看到我的索引页,但如果尝试单击它(或者在浏览器上输入完整路径),我会收到以下消息:
“未找到”
“此服务器上未找到所请求的 URL /test03/index.html”

一些附加信息:
-/var/www/test06/public/index.html如果我请求 test06.com,浏览器就会正确显示;
- 我正在通过 hosts 文件将 test06.com 映射到我的服务器 ip。

答案1

JoeSlav 给出的答案几乎是正确的。
子路径参数后面不能有斜杠。

这是工作配置:

<VirtualHost *:80>
    ServerName test06.com
    ServerAlias www.test06.com
    DocumentRoot /var/www/test06/public

    Alias /test03 /var/www/test03/public
    Alias /test04 /var/www/test04/public

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

答案2

您不需要多个虚拟主机,只需要不同的别名:

Alias /test001/ /var/www/test001/public
Alias /test002/ /var/www/test002/public

相关内容