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