2011-07-05 4 views
11

उदाहरण के लिए, यदि मैं /category/topic/post/ से /index.php?cat=1&topic=2&post=3 पर फिर से लिखता हूं, तो मैं PHP का उपयोग करके /index.php?cat=1&topic=2&post=3 कैसे प्राप्त कर सकता हूं?PHP: मैं URL को कैसे प्राप्त कर सकता हूं जिसे mod_rewrite के साथ पुनः लिखा गया है?

+6

संक्षिप्त उत्तर: आप नहीं कर सकते हैं। हालांकि, अगर आपका आवेदन रीराइट योजना (यानी आपके पास रिवर्स मैपिंग है) जानता है या आपके पास अच्छी तरह से परिभाषित रीराइट नियम हैं, तो आप पुनः लिखने की प्रक्रिया को उलट सकते हैं। –

+3

@Emre '$ _SERVER ['REQUEST_URI'] यूपी रीवाइट मॉड्यूल v2 का उपयोग होने पर अपाचे सर्वर और आईआईएस 7.x पर नौकरी ठीक करेगी। – LazyOne

+0

आप यह यूआरएल क्यों चाहते हैं? आप जो हासिल करना चाहते हैं उसे पूरा करने के लिए एक आसान समाधान हो सकता है। – dqhendricks

उत्तर

12

आप इसे आसानी से पुनः बना सकते हैं। $_SERVER['PHP_SELF'] अभी भी आपको स्क्रिप्ट के लिए सही फ़ाइल नाम देगा।

$url = $_SERVER['PHP_SELF']; 
$parts = array(); 
foreach($_GET as $k=>$v) { 
    $parts[] = "$k=" . urlencode($v); 
} 

$url .= "?" . implode("&", $parts); 

$url अब यूआरएल आप देख रहे हैं हो जाएगा: इस चाल करना चाहिए।

संपादित करें: @ कार्पेरेट का जवाब कहीं बेहतर है। इसके बजाय उसे

9

मूल यूरी $_SERVER['REQUEST_URI']

+0

अच्छा एक। साथ ही, यदि आप इसे फिर से लिख रहे हैं तो यह ब्राउज़र के पता बार पर दिखाया गया पूरा यूआरएल देगा। – LuBre

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

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