Apache-2.4

Apache 虛擬主機 - 將同一域(或 IP)的不同路徑映射到不同站點

  • March 13, 2019

我正在執行 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,瀏覽器會正確顯示;

  • 我通過主機文件將 test06.com 映射到我的伺服器 ip。

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>

您不需要多個虛擬主機,只需要不同的別名:

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

引用自:https://serverfault.com/questions/956543