मैं एक यूआरएल को किसी अन्य पेज पर mod_rewrite करना चाहता हूं, लेकिन फिर भी मैं चाहता हूं कि कोई क्वेरी स्ट्रिंग संरक्षित हो।मैं mod_rewrite कैसे कर सकता हूं और क्वेरी स्ट्रिंग्स रख सकता हूं?
RewriteEngine On
#enforce trailing slashes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !#
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://localhost/siteroot/$1/ [L,R=301]
RewriteRule ^apps/([A-Za-z0-9-_]+)/?$ index.php&app=$1
तो कोई उपयोगकर्ता apps/app1/
, index.php?app=app1
दिखाया गया है यदि। हालांकि, मैं वैकल्पिक क्वेरी स्ट्रिंग को संरक्षित करने में सक्षम होना चाहता हूं, ताकि apps/app1/?variable=x
पर जाकर index.php?app=app1&variable=x
लौटा सकें।
क्या mod_rewrite नियम/स्थिति यह घटित होगी?
धन्यवाद, मुझे नहीं पता था कि यह इतना आसान था। –
+1 @DanielOakey के साथ सहमत हैं .. मैं रेगेक्स के साथ कुछ हैक करने की कोशिश कर रहा था और यह काम नहीं कर रहा था .. –
स्पष्टीकरण के लिए, यह पुनर्लेखन बनाम पुनर्निर्देशन के बारे में नहीं है। http://httpd.apache.org/docs/current/rewrite/flags.html#flag_qsa कहते हैं: जब प्रतिस्थापन यूआरआई में एक क्वेरी स्ट्रिंग होती है, तो रीवाइटरूल का डिफ़ॉल्ट व्यवहार मौजूदा क्वेरी स्ट्रिंग को त्यागना और इसे प्रतिस्थापित करना है नव निर्मित एक के साथ। [क्यूएसए] ध्वज का उपयोग क्वेरी स्ट्रिंग को संयुक्त करने का कारण बनता है। –