टॉमकैट आधार URL पुनर्निर्देशन


79

बिल्ला का उपयोग करते हुए, मैं कैसे के लिए एक अनुरोध प्राप्त करते हैं http://www.mydomain.com पर रीडायरेक्ट करने http://www.mydomain.com/somethingelse/index.jsp ? मैं http://mydomain.com से प्रदर्शित करने के लिए एक index.html प्राप्त करने में भी कामयाब नहीं हुआ ।


वहाँ एक कारण है .htaccess या isapi काम नहीं करेगा?
नोना उरबीज

5
@NonaUrbiz: .htaccess अपाचे http सर्वर विशिष्ट नहीं है और टॉमकैट के साथ काम नहीं करता है?
टिम बुथ

किसी और के लिए टॉमकैट
KCD

जवाबों:


24

अपने वेबएप WAR का नाम "ROOT.war" रखें या फ़ोल्डर युक्त "ROOT"


यह दृष्टिकोण स्थानीय पर काम करते समय और फिर कई सर्वरों पर आपके एप्लिकेशन को तैनात करते समय बहुत सारी समस्याओं का कारण बनता है। विशेष रूप से यदि आपके पास विभिन्न सर्वरों पर तैनात होने वाली कई परियोजनाएं हैं, और प्रत्येक को अपने स्वयं के सर्वर पर रूट किया जा सकता है।
zookastos

111

आप ऐसा कर सकते हैं: यदि आपका टॉमकैट इंस्टॉलेशन डिफॉल्ट है और आपने कोई बदलाव नहीं किया है, तो डिफॉल्ट वॉर होगा ROOT.war। इस प्रकार जब भी आप कहेंगे http://yourserver.example.com/, यह फोन करेगा index.htmlया index.jspअपने डिफ़ॉल्ट युद्ध फ़ाइल की। webapp/ROOTअनुरोधों को पुनर्निर्देशित करने के लिए अपने फ़ोल्डर में निम्नलिखित परिवर्तन करें http://yourserver.example.com/somewhere/else:

  1. ओपन webapp/ROOT/WEB-INF/web.xml, पथ के साथ किसी भी सर्वलेट मैपिंग निकालने /index.htmlया /index.jsp, और सहेजें।

  2. निकालें webapp/ROOT/index.html, अगर यह मौजूद है।

  3. webapp/ROOT/index.jspसामग्री की इस पंक्ति के साथ फ़ाइल बनाएँ :

    <% response.sendRedirect("/some/where"); %>
    

    या यदि आप एक अलग सर्वर को निर्देशित करना चाहते हैं,

    <% response.sendRedirect("http://otherserver.example.com/some/where"); %>
    

बस।


7
केवल चरण # 2 की आवश्यकता है।
टॉमकैट

11
SendRedirect कमांड वह सब था जो मेरे लिए आवश्यक था। index.jsp में बस शामिल है: <% response.sendRedirect ("/ jasperserver"); %>
एंडी बर्टन

3
किसी भी jsp स्क्रिप्टलेट से पहले <% और%> जोड़ना न भूलें
जसीम मुहम्मद

अब तय होना चाहिए, मैंने कुछ और चीजें भी तय कीं।
रीइनियरियरपोस्ट

जावा मेरे लिए काम नहीं कर रहा था, इसलिए मैंने html redirection के साथ index.html का उपयोग किया। stackoverflow.com/questions/5411538/redirect-from-an-html-page
जाप्ये

18

UrlRewriteFilter पर एक नज़र डालें जो अनिवार्य रूप से Apache के mod_rewrite का जावा आधारित कार्यान्वयन है।

आपको इसे ROOTअपने टॉमकैट के webappsफ़ोल्डर में फ़ोल्डर में निकालने की आवश्यकता होगी ; फिर आप इसकी WEB-INF/urlrewrite.xmlकॉन्फ़िगरेशन फ़ाइल के भीतर किसी अन्य संदर्भ में रीडायरेक्ट कॉन्फ़िगर कर सकते हैं ।


UrlRewriteFilter तेज है और मेरे लिए अच्छा काम किया है। मैनुअल में कुछ बेहतरीन विकल्प हैं और इस ब्लॉग पोस्ट में कुछ अच्छी जानकारी भी है।
cwd

11

परीक्षण और काम करने की प्रक्रिया:

फ़ाइल पथ गोटो ..\apache-tomcat-7.0.x\webapps\ROOT\index.jsp

पूरी सामग्री को हटा दें या index.jsp के शीर्ष पर कोड की निचली पंक्तियों को घोषित करें

<% response.sendRedirect("http://yourRedirectionURL"); %>

कृपया ध्यान दें कि jsp फ़ाइल में आपको उपरोक्त लाइन को <% के साथ शुरू करने और%> के साथ समाप्त करने की आवश्यकता है


8

मैंने क्या किया:

मैंने ROOT / index.jsp के अंदर निम्न पंक्ति जोड़ी

 <meta http-equiv="refresh" content="0;url=/somethingelse/index.jsp"/>

2
यह वास्तव में आपके विश्लेषिकी डेटा को खराब कर सकता है, क्योंकि रेफरल खो जाएगा।
sbichenko

इस पद्धति का एक छोटा लाभ यह है कि index.jsp के बजाय index.html में जा सकते हैं
Edd

@ AdrianRM "यह ऐसा करने का तरीका नहीं है", तो सही तरीका क्या है?
एड ग्रिबेल

वायरल पटेल और ChssPly76 के दोनों वैध उत्तर हैं: stackoverflow.com/a/1363781/208576 stackoverflow.com/a/1363685/208576
एड्रिएनआरएम

मेरे लिए यह तब तक काम आया जब तक मैंने HTTPS सक्षम नहीं किया। पर स्विच किया गया <% response.sendRedirect("/some/where"); %>और यह अब HTTPS के साथ काम करता है।
माइकल माकीज गालूस्का

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.