मैंने विंडोज़ + आईआईएस + कोल्डफ्यूजन से हमारे मूल ऐप्स में से एक को उबंटू + अपाचे + लुसी में ले जाया। पहली बड़ी समस्या विदेशी अक्षरों के लिए यूआरआई एन्कोडिंग है।लुसी यूआरआई एन्कोडिंग समस्या (साइरिलिक)
उदाहरण के लिए, इस यूआरएल http://www.example.com/ru/Солнцезащитные-очки/saint-laurent/
परिणाम इस रिकॉर्ड में अपाचे access.log में पहुँचने की कोशिश कर:
http://www.example.com/ru/%D0%A1%D0%BE%D0%BB%D0%BD%D1%86%D0%B5%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%BD%D1%8B%D0%B5-%D0%BE%D1%87%D0%BA%D0%B8/saint-laurent/
ठीक है, मुझे लगता है कि सही ढंग से url- एन्कोडेड है। फिर मैं यूआरएल क्वेरी स्ट्रिंग पैरामीटर में यूआरएल (साइरिलिक एक) के उस हिस्से को प्राप्त करने के लिए .htaccess फ़ाइल में एक पुनर्लेखन नियम का उपयोग करता हूं (मान लें "foo")।
यह डंप करने के लिए cflog का उपयोग करना, मैं आवेदन लॉग में देखें:
/index.cfm?foo=оÑки-длÑ-зÑениÑ&
... जो स्पष्ट रूप से गलत है, क्योंकि मैं क्या जरूरत है मूल स्ट्रिंग, utf-8 सिरिलिक में है।
मैं अपने server.xml बिल्ला http कनेक्टर में URIEncoding पैरामीटर डालने की कोशिश की, कोई परिणाम नहीं के साथ:
<Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
मैं UTF-8 में मेरी url पैरामीटर कैसे मिल सकता है?
पहली चीज जो मैं कोशिश करूंगा वह टॉमकैट को अलग करना और सीधे परीक्षण करना होगा। यानी http: // hostname: 8888/index.cfm? foo = Солнцезащитные-очки आज़माएं। अगर यह सही तरीके से काम करता है - आपकी समस्या अपाचे/mod_rewrite पक्ष पर है। यह सवाल पर ध्यान केंद्रित करने में मदद कर सकता है। यदि अभी भी कोई समस्या है, तो आप आगे अलगाव के लिए टॉमकैट एक्सेस लॉग भी देख सकते हैं (शायद यह वास्तव में टॉमकैट की बजाय एक लुसी मुद्दा है)। –
मैंने कोशिश की और यह काम करता है अगर मैं सीधे लिखने के दौरान सिरिलिक पैरामीटर को गुजरने वाले लूस को बुलाता हूं। तो ... क्या यह एक अपाचे mod_rewrite मुद्दा है? यह मेरे एन्कोडिंग को क्यों बदलता है?! –
कि मैं आपको नहीं बता सकता (ज्ञान का मेरा क्षेत्र नहीं)। लेकिन आप इस सवाल को अपाचे/मॉड को फिर से लिख सकते हैं और कुछ विवरण प्रदान कर सकते हैं ताकि उस क्षेत्र के कुछ विशेषज्ञ मदद कर सकें (हालांकि ऐसा लगता है कि आपको इन यूआरएल का उपयोग नहीं करना चाहिए)। –