2010-05-06 13 views
5

में URL से उपयोगकर्ता नाम प्राप्त मैं कुछ इस तरह हैं:पीएचपी

http://www.someniceandreliableurl.com/username 

और उपयोगकर्ता नाम को पकड़ने।

मैं ट्विटर के/फेसबुक/आदि त्वरित यूआरएल की तरह कुछ बनाना चाहते ...

twitter.com/username 

मैं PHP के साथ कुछ इस तरह कैसे बना सकते हैं? =) अग्रिम में धन्यवाद।

+0

सुनिश्चित नहीं है लेकिन आप निर्देशिका में उस नाम से फ़ाइल का उपयोग करने में सक्षम हो सकते हैं, और फ़ाइल के शीर्ष पर #! \ LocationToPHPhere है, यह मानते हुए कि आप अपने पर्यावरण के लिए लिनक्स का उपयोग कर रहे हैं। इससे शैल इसे एक php फ़ाइल के रूप में पेश कर सकता है जिस बिंदु पर आप जो कुछ भी चाहते हैं वह कर सकते हैं। –

+0

@ जोश - अगर आपके पास कोई सभ्य आकार का उपयोगकर्ताबेस –

+0

था तो असफल हो जाएंगे, सभी तीन उत्तरों का मानना ​​है कि आप अपाचे के तहत PHP चला रहे हैं। क्या यह मामला है? – Dolph

उत्तर

8

उपयोग mod_rewrite होने के लिए :

RewriteEngine on 
RewriteOptions MaxRedirects=1 
RewriteCond %{REQUEST_FILENAME} -f [NC,OR] 
RewriteCond %{REQUEST_FILENAME} -d [NC] 
RewriteRule .* - [L] 
RewriteRule ^(.*)$ /foo.php/$1 [QSA,L] 

कहाँ foo.php त्वरित यूआरएल पृष्ठों का प्रदर्शन के लिए अपनी स्क्रिप्ट है।

फिर foo.php (या जिसे आपने नाम दिया है) आप $_SERVER['PATH_INFO'] में उपयोगकर्ता नाम पकड़ सकते हैं।

पहली 5 लाइनें mod_rewrite पर चालू होती हैं और रीयलिट नियम द्वारा वास्तविक फ़ाइलों/फ़ोल्डरों/स्क्रिप्ट को अनदेखा करने की अनुमति देती है। आखिरी व्यक्ति उन सभी यूआरएल को फिर से लिखता है जो जुर्माना/फ़ोल्डर्स/स्क्रिप्ट नहीं हैं।

+0

+1। –

+0

धन्यवाद, यह बहुत मदद करता है। – pojomx

+0

धन्यवाद, बस जोड़ने के लिए: मॉड रिवाइट चालू होना चाहिए (लोडड्यूलर rewrite_module मॉड्यूल/mod_rewrite.so, httpd.conf पर) – pojomx

6

आप Apache में एक फिर से लिखना का उपयोग कर सकते एक site.com/user को बदलने के लिए अपने .htaccess फ़ाइल में site.com/loadpage.php?user=user

RewriteEngine On 
RewriteRule ^/([a-z0-9]+) /load_user.php?user=$1 [NC,L,QSA] 
+0

आपकी मदद के लिए धन्यवाद, मुझे इसका परीक्षण करने में परेशानी हो रही है (मुझे इंतजार करना है) लेकिन इससे बहुत मदद मिलती है। स्पष्ट विवरण के लिए – pojomx

1

आपको वेबसेवर से उस क्वेरी के साथ एक क्वेरी स्ट्रिंग में उस यूआरएल को फिर से लिखने की आवश्यकता है जिसे आप PHP से एक्सेस कर सकते हैं। फिर उस अपाचे सुनिश्चित की तरह

http://www.someniceandreliableurl.com/?user=username 

यूआरएल के साथ काम करने के लिए अपने PHP स्क्रिप्ट है mod_rewrite स्थापित है और आप .htaccess उपयोग करने के लिए अनुमति दी जाती है कि। फिर अपाचे में

RewriteEngine On 
RewriteRule ^/(.*)$ /?user=$1 [QSA] 
+0

डाउनवोट क्यों? –

+2

@ जोशुआ: डाउनवोट, आईएमओ का कोई कारण नहीं है।जवाब स्वाभाविक रूप से सूची के निचले हिस्से में होने वाला है, क्योंकि अन्य दो उत्तरों पहले यहां थे और इस तरह सिर शुरू हो गया। यह अभी भी एक वैध जवाब है; एक धीमी टाइपिस्ट होने के लिए @Johan को दंडित करने की आवश्यकता नहीं है। –

0

चेकआउट ModRewrite की तरह, रीराइट नियम के साथ एक .htaccess फाइल बना सकते हैं या एक php रूपरेखा है कि मार्ग प्रदान करता है का उपयोग करें। यह आम तौर पर $ENV['PHP_SELF'] वैरिएबल पर आधारित होता है जो आपको अपने PHP कोड में और अधिक करने देता है जो आपको आमतौर पर ModRewrite में करना होगा। यह मेजबाननाम के बाद यूआरएल का हिस्सा वापस कर देगा ताकि आप http://exmaple.com/index.php/username/profile जैसे यूआरएल कर सकें।