2010-09-07 17 views
6

मैं वर्चुअल निर्देशिका सुविधा को लागू करने में PHP में एक अनुप्रयोग बनाना चाहता हूं।
उदाहरण: http://mydomain.com/user001 यूआरएल http://mydomain.com/index.php?user=user001 की सामग्री प्रदर्शित करेगा। मैं उसे कैसे कर सकता हूँ?PHP में वर्चुअल निर्देशिका कैसे बनाएं?

नोट:
मैं अपाचे सर्वर का उपयोग कर रहा हूं।

+0

उदा। [सिलेक्स] (http://silex.sensiolabs.org/) या [सिम्फनी रूटिंग घटक] (http://symfony.com/doc/current/components/routing/introduction.html)। अपनी खुद की चीजें रोल करने से बेहतर साबित घटकों का उपयोग करना बेहतर है। – nietonfir

उत्तर

5

ऐसा करने का पारंपरिक तरीका mod_rewrite है।

+0

यदि मैं ब्लॉगिंग एप्लिकेशन के लिए ऐसा करना चाहता हूं तो मुझे प्रत्येक प्रविष्टि के लिए mod_rewrite करना होगा। उदाहरण: हर बार जब मैं stackoverflow.com में कोई प्रश्न बनाता हूं, तो यह स्वचालित रूप से उस प्रश्न के लिए वर्चुअल निर्देशिका बनाता है। – chanchal1987

+0

नहीं, आप किसी भी प्रविष्टि से मेल खाने के लिए अपने पुनर्लेखन नियम में एक रेगेक्स सेट अप करेंगे। – GrandmasterB

+0

@ ग्रांडमास्टरबी: ठीक है धन्यवाद ... – chanchal1987

2

कृपया this friendly article regarding rewrite पढ़ें।

अगला, इस परिवर्तनीय $ _SERVER ['REQUEST_URI'] को पार्स करने के लिए PHP में एक आसान तरीका खोजने का प्रयास करें।

ऐसा करने के बाद, आपके पास निर्देशिका का नाम है और आप डीबी से अपना डेटा प्राप्त कर सकते हैं।

0

$ _SERVER के 'REQUEST_URI' तत्व का उपयोग कर HTTP अनुरोध को रोकें। यह रिटर्न (मुझे विश्वास है) केवल अनुरोधित पृष्ठ, संपूर्ण यूआरआई/यूआरएल नहीं - अधिक जानकारी here। एक बार जब आप पृष्ठ अनुरोध प्राप्त कर लेते हैं, तो आवश्यक वास्तविक फ़ाइल के पते को प्रतिस्थापित करें। उदाहरण के लिए, उपयोगकर्ता के अनुकूल www.somewebsite.com/page01 अधिक भद्दा लगने www.somewebsite.com?page01.php के लिए एक अनुरोध हो जाता है। यह विधि वर्चुअल निर्देशिका नहीं बनाएगी, जैसे कि, लेकिन ठीक काम करना चाहिए। मैंने अपने IT website पर एक समान विधि का उपयोग किया है, जहां प्रत्येक पृष्ठ index.php के माध्यम से लोड किया जाता है, जिससे उस फ़ाइल को रीयल टाइम में विज़िटर का लॉग रखने की अनुमति मिलती है (साइट में वेबलाइज़र होता है, जो बकाया राशि में दिन या उससे अधिक चलाता है)।

फ़ाइल नाम पुनर्लेखन काम कर सकता है, हालांकि यह मेरे व्यक्तिगत स्वाद के लिए नहीं है। एक यूआरआई/यूआरएल-स्वैप को प्रभावित करने के लिए PHP का उपयोग करने से फ़ाइल नाम कम करने के लिए कम डिस्क पढ़ने/लिखने के समय की आवश्यकता के कारण कम सर्वर की मांग का लाभ होगा।

मुझे उम्मीद है कि इससे मदद मिलती है।

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