Tomcat - перенаправить старый контекстный корень в новый контекстный корень
Мы хотим изменить корневой контекст веб-приложения Tomcat и использовать старый URL-адрес, который направляет пользователей к недавно названному приложению.
http://hostname/oldappname
http://hostname/newappname
Один из способов сделать это - развернуть приложение с корнем контекста newappname, а другое приложение - с корнем контекста oldappname и заставить его направлять пользователей к новому URL-адресу.
Эта простая опция нам не открыта, внутренняя политика компании запрещает запуск нескольких приложений в одном экземпляре Tomcat (не подлежит обсуждению).
Я помню, у GlassFish есть концепция "альтернативного корня документа", который можно использовать для предоставления приложению нескольких контекстных корней, есть идеи, как это сделать в Tomcat?
1 ответ
Существует Dir под названием ROOT
под tomcat/webapps
,
Это ROOT-приложение заканчивается тем, что вызывается для тех URL-адресов, которые имеют "contextPath", отличный от каталогов в папке Webapps.
Чтобы вы могли:
Создайте папку с именем "oldappname" непосредственно в папке "ROOT".
Создайте файл index.html в этой папке "oldappname" и создайте для него Javascript для перенаправления браузера на новый URL-адрес.
Всякий раз, когда браузер вызывает http://servername/oldappname
, tomcat окажет: webapps/ROOT/oldappname/index.html
ОБНОВИТЬ:
Вы могли бы сделать некоторые интересные вещи с ROOT:
Tomcat 6: Как изменить приложение ROOT
https://tomcat.apache.org/tomcat-7.0-doc/config/context.html
Пример файла index.html для перенаправления со старого приложения на новое имя:
<html>
<head>
<script type="text/javascript">
window.location.href = "/newappname";
</script>
</head>
</html>
Быть помещенным в webapps/ROOT/oldappname
как описано выше Меконом.
См. Также: Как установить контекстный путь веб-приложения в Tomcat 7.0.