Наскільки я можу сказати, це непросто зробити з будь-яким із правил / обробників, які постачаються разом із 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.