2011-01-19 15 views
21

$_SERVER['REQUEST_URI'] और $_GET['q'] (जो ड्रूपल में उपयोग किया जाता है) के बीच क्या अंतर है?

+23

उम .. वे दो पूरी तरह से अलग चीजें हैं? मुझे लगता है कि आपको कुछ संदर्भ जोड़ने की आवश्यकता होगी –

उत्तर

106

को देखते हुए इस उदाहरण यूआरएल:

http://www.example.com/some-dir/yourpage.php?q=bogus&n=10

$_SERVER['REQUEST_URI'] आप दे देंगे:

/some-dir/yourpage.php?q=bogus&n=10

जबकि $_GET['q'] आप दे देंगे:

bogus

दूसरे शब्दों में, $_SERVER['REQUEST_URI']querystring सहित पूरा अनुरोध पथ धारण करेगा। और $_GET['q'] आपको क्वेरीस्ट्रिंग में पैरामीटर q का मान देगा।

9

Drupal के संदर्भ में, अंतर है कि क्या निर्भर करेगा के लिए # स्वच्छ यूआरएल चालू हैं या नहीं। जबकि $_GET["q"] क्या q को असाइन किया गया होगा

उनके साथ बंद

, $_SERVER['REQUEST_URI'] के रूप में w//index.php बुलाया पेज का पूरा पथ है,।

उनके साथ, वे लगभग अन्य तर्कों के समान होंगे, लेकिन $_GET["q"] में अग्रणी / गुम हो जाएगा। क्या हो रहा है यह देखने के लिए डिफ़ॉल्ट। Htaccess के अंत की ओर एक नज़र डालें। पृष्ठ में अतिरिक्त तर्क पारित होने पर वे अलग-अलग होंगे, उदाहरण के लिए जब पेजर सक्रिय होता है।

+3

यह एकमात्र उत्तर है जो प्रश्न के प्रारंभिक कारण को हल करता है (यूआरएल रीराइटिंग); बल्कि स्पष्ट php superglobals परिभाषाओं को देने के बजाय। मुझे गलत मत समझो, अन्य उत्तरों स्वयं में बहुत सही हैं, लेकिन यह उत्तर प्रश्न के लिए कुछ पृष्ठभूमि प्रदान करता है और वास्तव में अधिक अपवित्र होना चाहिए! – Levit

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