Soweit ich das beurteilen kann, ist dies mit den Regeln / Handlern, die mit Jetty 6 geliefert werden, nicht einfach.
Die RedirectPatternRule
Übereinstimmungen auf dem target
Pfad im Jetty-Server und nicht der vollständige URI, sodass Ihre Regel niemals übereinstimmt.
Sie können es ändern in:
<New id="redirect" class="org.mortbay.jetty.handler.rewrite.RedirectPatternRule">
<Set name="pattern">/*</Set>
<Set name="location">https://foobar.com</Set>
</New>
Dies hat jedoch zwei Probleme:
- Es werden alle Anfragen (auch
https
Anfragen) umgeleitet.
- Die angeforderte URL wird nicht berücksichtigt (sie leitet immer
location
wie angegeben weiter und ignoriert alles, was mit dem übereinstimmt pattern
).
Sie können das erste Problem mit einigen Tricks überwinden.
Sie können das RewriteHandler
in ein einschließen ContextHandler
, und mit einem Kontext-Handler können Sie angeben, welche Konnektoren Anforderungen von ( setConnectorNames
) verarbeiten sollen. Sie können dies also verwenden, um das Umschreiben nur auf Anforderungen auf den http-Connectors anzuwenden.
Ich kann mir jedoch keinen Weg vorstellen, um das zweite Problem zu lösen.
Ich denke, Ihre beste Wette ist es, Ihre eigene Umleitungsregel dafür zu schreiben. Wenn Sie keine Entwicklungsressourcen haben, um dies für Sie zu tun, kontaktieren Sie mich (Sie finden meine E-Mail-Adresse über meinen Blog, der sich in meinem Profil befindet) und ich kann eine erstellen (unter derselben Lizenz wie Jetty). Es ist ziemlich einfach, eine Regel zu schreiben, die http einfach zu https umleitet.