Sejauh yang saya tahu, ini tidak mudah dilakukan dengan aturan / penangan yang dikirim bersama Jetty 6.
The RedirectPatternRule
pertandingan di target
yang merupakan jalan di server Jetty, dan tidak penuh URI, sehingga aturan Anda tidak pernah cocok.
Anda dapat mengubahnya menjadi:
<New id="redirect" class="org.mortbay.jetty.handler.rewrite.RedirectPatternRule">
<Set name="pattern">/*</Set>
<Set name="location">https://foobar.com</Set>
</New>
Namun, itu memiliki 2 masalah:
- Ini akan mengarahkan ulang semua permintaan (bahkan
https
permintaan)
- Tidak memasukkan URL yang diminta ke akun (selalu diarahkan ke
location
seperti yang ditentukan, dan mengabaikan apa pun yang cocok dengan pattern
)
Anda dapat mengatasi masalah pertama dengan beberapa tipu daya.
Anda dapat membungkus RewriteHandler
dalam ContextHandler
, dan penangan konteks memungkinkan Anda untuk menentukan konektor akan menangani permintaan dari ( setConnectorNames
). Jadi, Anda bisa menggunakannya untuk membuat penulisan ulang hanya berlaku untuk permintaan pada konektor http.
Saya tidak bisa memikirkan cara untuk mengatasi masalah kedua.
Saya pikir taruhan terbaik Anda adalah menulis aturan pengalihan Anda sendiri untuk ini. Jika Anda tidak memiliki sumber daya pengembangan untuk melakukannya untuk Anda, maka hubungi saya (Anda dapat menemukan alamat email saya melalui blog saya, yang ada di profil saya) dan saya dapat menyiapkannya (di bawah lisensi yang sama dengan Jetty). Akan sangat mudah untuk menulis aturan yang hanya mengalihkan http ke https.