2011-05-18 12 views
13

वर्तमान में मैं का उपयोग सभी प्रकार की क्वेरी स्ट्रिंग पारित:.htaccess फिर से लिखने के माध्यम से

RewriteRule ^([^/\.]+)/?$ page.php?page=$1 [L] 

कौन सा जब के माध्यम से एक क्वेरी स्ट्रिंग पारित करने के लिए अच्छा है।

लेकिन क्या सभी क्वेरीस्ट्रिंग को पास करने का कोई तरीका है? यानी एक पृष्ठ का अनुरोध किया जा सकता है:

domain.com/contact?course=23 

और एक अन्य हो सकता है:

domain.com/contact?workshop=41 

तो मैं पता है कि क्वेरी स्ट्रिंग नाम है की जरूरत है, लेकिन केवल कभी एक समय

पर में पारित हो जाएगा

उत्तर

28

अगर मैं आपके सवाल का सही ढंग से समझ, तुम बस [QSA] (query string append) flag अपने RewriteRule

RewriteRule ^([^/\.]+)/?$ page.php?page=$1 [L,QSA] 

यह आपके अनुरोध पर कार्रवाई करेंगे आप आज़मा चुके हैं के रूप में के अंत में जोड़ सकते हैं, और पर किसी भी आगे की क्वेरी स्ट्रिंग पैरामीटर जोड़ने समाप्त।

+0

धन्यवाद - यह बहुत अच्छा काम करता है! :-) – Shane

1

यह वही है जो मैं करता हूं।

RewriteRule ^((/?[^/]+)+/?)$ ?q=$1 [L]

अब domain.com/ के बाद पूरे हिस्सा index.php में $_GET['q'] में है। जैसे यदि आप domain.com/articles/12 का अनुरोध करते हैं, q में articles/12 शामिल हैं। इसके बाद यह मामूली पार्स है उदा। explode('/', $_GET['q'])

+0

धन्यवाद - करीब था, लेकिन @ माइकल की विधि पसंद करते हैं ... – Shane

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