
У меня есть домен с поддоменом, настроенным следующим образом в файле vhost.conf.
<VirtualHost *:80>
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /opt/mysite/webapps/ROOT/
ProxyPassMatch / ajp://localhost:8084
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain.mysite.com
ServerAlias www.subdomain.mysite.com
DocumentRoot /opt/mysite/webapps/ROOT/
Redirect /index.jsp /index2.jsp
ProxyPassMatch / ajp://localhost:8084
</VirtualHost>
Основной сайт загружается, index.jsp
но я бы хотел, чтобы поддомен загружал другой файл JSP ( index2.jsp
).
Я пробовал использовать Redirect, но все переходит index.jsp
на поддомен.
решение1
РЕДАКТИРОВАТЬ
Следующее неверно из-за наличия ProxyPassMatch
.
Прошло много времени с тех пор, как я последний раз настраивал Apache VirtualHost, но я думаю,
DirectoryIndex index2.jsp
это то, что вы ищете.
Итак, полная конфигурация будет такой:
<VirtualHost *:80>
ServerName subdomain.mysite.com
ServerAlias www.subdomain.mysite.com
DocumentRoot /opt/mysite/webapps/ROOT/
# Serve index2.jsp as index file
DirectoryIndex index2.jsp
ProxyPassMatch / ajp://localhost:8084
</VirtualHost>
РЕДАКТИРОВАТЬ
Я не очень внимательно искал, похоже, эта ProxyPassMatch
директива переопределяет множество других команд:
As the ProxyPassMatch directive is evaluated as the very beginning of each request:
-AddType (for MultiView) or DirectoryIndex directives are not usable
-right management per directory is not available
-each Alias directive needs another proxy rule
Проблема в том, что ваша index2.jsp
воляникогдаобслуживаться Apache, поскольку сервер уже сопоставил ProxyPass /, и поэтому он уже был передан ajp://localhost:8084
.
Затем вам следует управлять обслуживанием index.jsp
или index2.jsp
на ajp://localhost:8084
.