Назад | Перейти на главную страницу

Jetty: как перенаправить базовый URL?

Сценарий:

  1. Я использую причальный сервер.
  2. У меня запущено веб-приложение: myip / myWebApp

Вопрос: как перенаправить базовый URL на базовый URL / что-то

т.е. http://190.23.30.1/ -> http://190.23.30.1/mywebapp

Итак, когда пользователь нажимает http://190.23.30.1/ мой сервер будет перенаправлен на http://190.23.30.1/myWebApp

Причал имеет Обработчик перезаписи который можно включить с помощью

$ java -jar start.jar --add-to-start=rewrite`

Следуя примерам, приведенным в документации, вы можете добавить правило в файл xml:

<Configure id="Server" class="org.eclipse.jetty.server.Server">
  <Ref refid="Rewrite">
    <Call name="addRule">
      <Arg>
        <New class="org.eclipse.jetty.rewrite.handler.RedirectPatternRule">
          <Set name="pattern" type="String"></Set>
          <Set name="location">/myWebApp/</Set>
        </New>
      </Arg>
    </Call>
  </Ref>
</Configure>

Эквивалент для встроенного файла конфигурации Jetty:

Server server = new Server();
RewriteHandler rewrite = new RewriteHandler();

RedirectPatternRule redirect = new RedirectPatternRule();
redirect.setPattern("/");
redirect.setReplacement("/myWebApp/");
rewrite.addRule(redirect);

Для этого может существовать способ на основе конфигурации, но быстрое и грязное решение - создать страницу индекса, которая перенаправляет на желаемый URL.

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>MyWebApp</title>
        <meta http-equiv="refresh" content="0;URL='/mywebapp'" />
    </head>
    <body>
    </body>
</html>
  • Создайте корневой каталог на причале: mkdir / webapps / root
  • Создайте index.html в / webapps / root / с содержимым, как показано выше