тема говорит сама за себя. Я хочу сопоставить каждый поддомен с веб-приложением, например:
http://root.domain.com:8080 -> http://domain.com:8080/
http://manager.domain.com:8080 -> http://domain.com:8080/manager
http://abc.domain.com:8080 -> http://domain.com:8080/abc
http://def.domain.com:8080 -> http://domain.com:8080/def
на машине localhost это будет
http://root.localhost:8080 -> http://localhost:8080/
http://manager.localhost:8080 -> http://localhost:8080/manager
http://abc.localhost:8080 -> http://localhost:8080/abc
http://def.localhost:8080 -> http://localhost:8080/def
В идеале я бы хотел использовать порт 80 вместо 8080, но это уже другая история. Я был бы счастлив сначала запустить его с портом 8080, чтобы путь в конце URL-адреса исчез.
Обратите внимание: стрелки - это не перенаправления, а то, что я ввел бы, если бы оставил Tomcat как есть.
Я знаю страницу документации Tomcat http://tomcat.apache.org/tomcat-6.0-doc/virtual-hosting-howto.html . Я читал это много раз, но особых успехов не добился. Я отредактировал etc / hosts, добавив 127.0.0.1 bbstats.localhost. Затем я добавил
<Host name="bbstats.localhost" appBase="webapps/bbstats"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
в файл Tomcat server.xml в каталоге conf. В моем веб-приложении context.xml:
<Context path="/bbstats" docBase="bbstats" debug="5" reloadable="true" crossContext="true">
</Context>
Перезапустите Tomcat. Redploy через Ant. При вводе
http: //bbstats.localhost: 8080 /
в браузер я получаю пустой экран.
При использовании appBase = "webapps" вместо appBase = "webapps / bbstats" я попадаю в корневое приложение Tomcat. Последнее поведение вполне ожидаемо. Но как мне заставить bbstats.localhost: 8080 перейти в веб-приложение bbstats без завершающего / bbstats в URL-адресе?