हम कुछ बहुत ही बुनियादी mod_rewrite नियम है:mod_rewrite urlencoding पहले से ही urlencoded क्वेरी स्ट्रिंग पैरामीटर - इसे अक्षम करने का कोई तरीका?
RewriteRule ^something.swf$ http://www.newdomain.com/something.swf [R=302,L]
mod_rewrite अपना काम करने में लगता है, और यदि उपयोगकर्ता तक पहुँच रहा है:
something.swf?param=value
, यह http://www.newdomain.com/something.swf?param=value
को सही तरह से पुनर्निर्देशित है समस्या है इस स्थिति में:
www.olddomain.com/something.swf?param=URL_ENCODED_VALUE
क्या हो रहा है mod_rewrite लेता है यह स्वयं पर-urlencode फिर से क्वेरी स्ट्रिंग परम
तो क्या उपयोगकर्ता के साथ समाप्त होता है है:
www.olddomain.com/something.swf?param=URL_ENCODED_VALUE
www.newdomain.com/something.swf?param=URL_ENCODED_VALUE_OF_URL_ENCODED_VALUE
पर पुनः निर्देशित तो हम एक डबल urlencoded साथ खत्म मूल्य। boourns!
जबकि मुझे समझ में आता है कि हम \?(.*)
बना सकते हैं ... ?$1
इसके लिए नियम, मुझे लगता है कि mod_rewrite को बताने का एक तरीका होना चाहिए क्वेरी स्ट्रिंग पैराम urlencode नहीं ... हम 2 नियमों का उपयोग करने से बचना चाहते हैं के बाद से वैध रास्ते हैं:
something.swf (no query string)
और
something.swf?someparams...
तो हां, आदर्श ... बस mod_rewrite बता: कृपया, क्वेरी स्ट्रिंग पैरामीटर का कोई urlencoding ... के माध्यम से नए URL सिर्फ प्रत्यक्ष passthru R=302
।
दोह! जवाब है, एनई पैरामीटर। माफ़ कीजिये! –
शर्त है कि यह था। क्या आप एक उत्तर प्रदान कर सकते हैं और इसे स्वीकार्य मान सकते हैं? (मुझे लगता है कि ऐसा करने के लिए समय सीमा है, लेकिन जितनी जल्दी हो सके इसे करें: पी) –
हाँ कहता है कि मुझे 8 घंटे से कम समय में अपने प्रश्न का उत्तर देने के लिए 100 प्रतिनिधि की आवश्यकता है। बाद में जवाब देंगे। –