我正在运行 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