Por lo que puedo decir, esto no es fácil de hacer con ninguna de las reglas / controladores que se envían con Jetty 6.
Las RedirectPatternRule
coincidencias en target
cuál es la ruta en el servidor Jetty, y no el URI completo, por lo que su regla nunca coincide.
Puedes cambiarlo a:
<New id="redirect" class="org.mortbay.jetty.handler.rewrite.RedirectPatternRule">
<Set name="pattern">/*</Set>
<Set name="location">https://foobar.com</Set>
</New>
Sin embargo, eso tiene 2 problemas:
- Redirigirá todas las solicitudes (incluso las
https
solicitudes)
- No tiene en cuenta la URL solicitada (siempre redirige a
location
como se especifica e ignora todo lo que coincida con pattern
)
Puedes superar el primer problema con algunos trucos.
Puede ajustarlo RewriteHandler
en a ContextHandler
, y un controlador de contexto le permite especificar de qué conectores manejará las solicitudes de ( setConnectorNames
). Por lo tanto, puede usar eso para hacer que la reescritura solo se aplique a las solicitudes en los conectores http.
Sin embargo, no puedo pensar en una forma de superar el segundo problema.
Creo que su mejor opción será escribir su propia regla de redireccionamiento para esto. Si no tiene recursos de desarrollo para hacer eso por usted, contácteme (puede encontrar mi dirección de correo electrónico a través de mi blog, que está en mi perfil) y puedo preparar una (bajo la misma licencia que Jetty). Será bastante sencillo escribir una regla que simplemente redirija http a https.