2014-11-14 20 views
9

मैं बिलाव 8.0 में RewriteValve उपयोग करने के लिए http://tomcat.apache.org/tomcat-8.0-doc/rewrite.htmlबिलाव 8.0 पुनर्लेखन वाल्व

$ CATALINA_HOME में कोशिश कर रहा हूँ/conf/server.xml, मैं सही होस्ट टैग नीचे

<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" /> 

जोड़ा

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> 

निम्नलिखित

साथ $CATALINA_HOME/conf निर्देशिका में rewrite.config बनाया गया
RewriteRule ^/abc /myapp 

जहां http:/host:port/myapp एक कार्यशील वेबपैप है।

तो अब जब मैं http://host:port/abc पर जाता हूं तो मुझे http://host:port/myapp पर रीडायरेक्ट होने की उम्मीद है, लेकिन मुझे इसके बजाय 404 the requested resource is not available मिलता है।

ऐसा लगता है कि यह मेरी rewrite.config फ़ाइल भी पढ़ रहा है। लॉग निर्देशिका में एक्सेस लॉग केवल "GET /abc HTTP/1.1" 404 1000 की रिपोर्ट के साथ रिपोर्ट नहीं करता है।

मुझे क्या याद आ रही है? धन्यवाद

+0

क्या आपने 'रिवाइटवेलवे 'के लिए DEBUG लॉगिंग सक्षम की है? लॉग में प्रासंगिक कुछ भी? पहली नज़र में, जो आपने सही दिखता है। आप अपाचे टोमकैट का किस संस्करण का उपयोग कर रहे हैं? –

+0

मैं 'रिवाइटवल्व' के लिए DEBUG लॉगिंग कैसे सक्षम कर सकता हूं? मैं टोमकैट 8.0 का उपयोग कर रहा हूँ।15 –

+0

क्रिस - कोई विचार, मैं और क्या कोशिश कर सकता हूं? मैं बस अपने विट्स एंड के बारे में हूं, यह सुनिश्चित नहीं करता कि इसे आगे कैसे डिबग/समस्या निवारण करें। किसी भी मदद के लिए धन्यवाद। –

उत्तर

8

बिलाव प्रलेखन http://tomcat.apache.org/tomcat-8.0-doc/rewrite.html में

पुनर्लेखन वाल्व एक वाल्व एक होस्ट में जोड़ा के रूप में विन्यस्त किया जा सकता लिखा है। सूचनाओं के लिए वर्चुअल-सर्वर दस्तावेज़ देखें इसे कॉन्फ़िगर कैसे करें। यह एक rewrite.config फ़ाइल का उपयोग करेगा जिसमें पुनः लिखने के निर्देश होते हैं, इसे होस्ट कॉन्फ़िगरेशन फ़ोल्डर में रखा जाना चाहिए।

तो $CATALINA_HOME/conf/Catalina/localhost

छोटे संकेत में rewrite.config ले जाने की कोशिश: आप में rewrite.config (जैसे xxRewriteRule) और फिर कुछ गलत लिखा जा सकता है अगर बिल्ला इस फाइल को यह विफल रहता है पढ़ता है। मुझे लगता है कि आपके मामले में टॉमकैट शुरू होता है भले ही आप कुछ गलत टाइप करते हैं (क्योंकि यह पढ़ा नहीं जाता है)।

1

आप कुछ डिफ़ॉल्ट पथ $CATALINA_HOME/conf/Catalina/localhost से अलग करना चाहते हैं, आप विन्यास फाइल करने के लिए एक रिश्तेदार पथ निर्दिष्ट करने के लिए अपने RewriteValve एक्सएमएल परिभाषा resourcePath मैदान के उपयोग करने में सक्षम हो सकता है। (वैसे, मैं इस का उपयोग नहीं किया।)

वैकल्पिक रूप से, आप $CATALINA_HOME/conf/context.xml के वाल्व में जोड़ सकते हैं और उसके बाद अपने वेब अनुप्रयोग की वेब-INF फ़ोल्डर में rewrite.config चलते हैं।

documentation से:

यह भी एक webapp के context.xml में हो सकता है। वाल्व फिर एक rewrite.config फ़ाइल का उपयोग फिर से लिखने के निर्देशों से युक्त, यह वेब अनुप्रयोग की वेब-INF फ़ोल्डर में रखा जाना चाहिए

+1

संसाधनपैथ फ़ील्ड सेटअप काम नहीं करता है। इसे सेट करने का प्रयास करते समय यह एक मान्यता प्राप्त संपत्ति नहीं है। साथ ही, आप $ CATALINA_BASE/conf/[इंजन]/[hostname] /your_app.xml में वाल्व को परिभाषित कर सकते हैं और एप्लिकेशन (WE_AP) की वेब-आईएनएफ निर्देशिका में rewrite.config डाल सकते हैं। – Achille

0

मैं अपने पुनः लेखन के लिए server.xml में AccessLogValve बाहर टिप्पणी करने के लिए किया था काम करने के लिए वाल्व

संबंधित मुद्दे