Apache-2.4
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,瀏覽器會正確顯示;
- 我通過主機文件將 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