जहां तक मैं बता सकता हूं, जेटी 6 के साथ भेजे गए किसी भी नियम / हैंडलर के साथ ऐसा करना आसान नहीं है।
जिन RedirectPatternRule
मैचों target
में जेट्टी सर्वर में पथ है, और पूर्ण यूआरआई नहीं है, इसलिए आपका नियम कभी भी मेल नहीं खा रहा है।
आप इसे बदल सकते हैं:
<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 कनेक्टर (ओं) पर अनुरोधों पर लागू हो।
मैं हालांकि दूसरे मुद्दे पर काबू पाने का तरीका नहीं सोच सकता।
मुझे लगता है कि इसके लिए अपना खुद का पुनर्निर्देशन लिखने के लिए आपकी सबसे अच्छी शर्त होगी। यदि आपके पास ऐसा करने के लिए विकास संसाधन नहीं हैं, तो मुझसे संपर्क करें (आप अपने ईमेल पते को मेरे ब्लॉग के माध्यम से पा सकते हैं, जो मेरी प्रोफ़ाइल में है) और मैं एक कोड़ा (जेट्टी के समान लाइसेंस के तहत) को कोड़ा कर सकता हूं। यह एक नियम को लिखने के लिए बहुत सीधे होगा जो http से https में पुनर्निर्देशित करता है।