Наскільки я можу сказати, це непросто зробити з будь-яким із правил / обробників, які постачаються разом із Jetty 6.
Ці RedirectPatternRuleсірники на targetяких шлях на сервері Jetty, а не повний URI, тому ваше правило ніколи не відповідність.
Ви можете змінити його на:
<New id="redirect" class="org.mortbay.jetty.handler.rewrite.RedirectPatternRule">
<Set name="pattern">/*</Set>
<Set name="location">https://foobar.com</Set>
</New>
Однак, це 2 питання:
- Він переспрямує всі запити (навіть
httpsзапити)
- Він не враховує запитувану URL-адресу (вона завжди переспрямовує,
locationяк зазначено, і ігнорує все, що було узгоджено з pattern)
Ви можете подолати перше питання деякою хитрістю.
Ви можете загортати RewriteHandlerв ContextHandler, а обробник контексту дозволяє вказувати, які з’єднувачі будуть обробляти запити ( setConnectorNames). Отже, ви можете використовувати це для того, щоб переписати застосувати лише запити на http-з'єднувачах.
Я не можу придумати спосіб подолання другого питання.
Я думаю, що найкраще буде створити власне правило переадресації для цього. Якщо у вас немає ресурсів розвитку, щоб зробити це для вас, тоді зв’яжіться зі мною (ви можете знайти мою електронну адресу через мій блог, який є в моєму профілі), і я можу перенести його (за тією ж ліцензією, що і Jetty). Буде досить прямо вперед написати правило, яке просто перенаправляє http на https.