2011-08-30 9 views
6

मुझे .htaccess और QUERY_STRING से संबंधित कोई समस्या है।htaccess QUERY_STRING urldecode

मैं अपने htaccess के साथ एक यूआरएल है कि इस तरह दिखता है पुनः निर्देशित का प्रयास करें:

http://mydomain.tld/out/http%3A%2F%2Fotherdomain.tld%3Fparam%3D0 

http://otherdomain.tld?param=0 

मैं REQUEST_URI साथ RewriteCond और फिर से लिखना का उपयोग यूआरएल अनुप्रेषित करने के लिए और सब कुछ REQUEST_URI के बाद से ठीक काम करता है htaccess में डिफ़ॉल्ट रूप से urldecoded है।

हालांकि, जब मैं हॉटमेल के लिंक को ईमेल करता हूं, हॉटमेल urldecodes स्लेश और प्रश्न चिह्न। परिणाम इस प्रकार है:

http://mydomain.tld/out/http%3A//Fotherdomain.tld?param%3D0 

तो इनको लिंक लेता है और यह रीडायरेक्ट करने के लिए कोशिश करता है लेकिन सवाल की वजह से निशान इनको "सोचता है कि" प्रश्न चिह्न के पीछे सब कुछ एक QUERY_STRING है।

समस्या: apache2 QUERY_STRING को urldecode नहीं करता है। तो क्या होता है कि htaccess

http://otherdomain.tld?param%3D0 

पर विफल हो जाएगा जो विफल हो जाएगा।

तो मेरे सवाल है:

मैं कैसे करने के लिए या तो QUERY_STRING urldecode इनको बता सकते हैं या पूर्ण अनुरोध किया गया URL (या तो urlendcoded या urldecoded) प्रश्न चिह्न के बाद वाले हिस्से सहित उपयोग कर सकते हैं

धन्यवाद अग्रिम!

चीयर्स

+0

मैं भी एक ऐसी ही समस्या http://stackoverflow.com/questions/8464298/rewrite-and-url-decoding मैं भी एक जवाब नहीं मिल सका है। क्या आपने इसे हल किया है? – dstonek

उत्तर

0

तुम भी क्वेरी स्ट्रिंग एन्कोड करने के लिए इनको मजबूर करने के लिए आपका रीराइट नियम को [QSA] जोड़ने की जरूरत नहीं है।

http://httpd.apache.org/docs/current/en/mod/mod_rewrite.html