Я использую 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-адресом моего сервера через файл hosts.
Ответ 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