2010-11-29 15 views
7

मैं एक बहुत ही कुशल प्रोग्रामर हूं, लेकिन जब यह RegEx और पुनर्लेखन की बात आती है, तो मैं कुल एन 00 बी हूं। मैंमैं एक PHP क्वेरी स्ट्रिंग को स्लैश-आधारित यूआरएल में कैसे परिवर्तित करूं?

http://www.example.com/lookup/1/item/ 

को

http://www.example.com/lookup.php?id=1 

में से किसी URL परिवर्तित करना चाहते हैं, जहां "आइटम" एक डेटाबेस है कि देखा-अप किया जा रहा है में किसी आइटम के नाम को दर्शाता है।

मैं LAMP उपयोग कर रहा हूँ (लिनक्स, अपाचे, MySQL, PHP) और मुझे नहीं, मेरे जीवन के लिए, यह पता लगाने कर सकते हैं ताकि वे एसईओ के अनुकूल हैं उन URL कन्वर्ट करने के लिए।

+1

ऐसा लगता है कि यू डर them.Please रेगुलर एक्सप्रेशन मास्टरिंग की एक प्रति हड़पने। –

+0

मैं नियमित अभिव्यक्ति कुकबुक की भी सिफारिश करता हूं। – Leo

उत्तर

4

सरल .htaccess उदाहरण:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule ^lookup/([a-z0-9\-]+)/item/?$ /lookup.php?id=$1 
</IfModule> 

यह किसी भी अल्फान्यूमेरिक (भी डैश पहचान लेंगे) 'आईडी' के रूप में किसी भी लम्बाई के स्ट्रिंग से मेल खाएगी। आप रेगेक्स को ([0-9]+) पर बदलकर बस संख्यात्मक पर सीमित कर सकते हैं।

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule ^lookup/([a-z0-9\-]+)/([a-z0-9\-]+)/?$ /lookup.php?id=$1&view=$2 
</IfModule> 

यह एक से मेल खाएगी /lookup/123/some-text//lookup.php?id=123&view=some-text को

+1

यह एक आकर्षण की तरह काम किया! बहुत बहुत धन्यवाद! –

0

आप पुराने URL को नए से पुनर्निर्देशित करने के लिए करना चाहते हैं? या आप उन "दोस्ताना" यूआरएल में पढ़ना चाहते हैं और फिर उन्हें पुराने यूआरएल की तरह व्यवहार करना है?

यदि यह उत्तरार्द्ध है, एक तरह से पार्स और काफी आसानी से उन लिंक्स रीडायरेक्ट करने के लिए के रूप में Net_URL_Mapper पर एक नज़र डालने का प्रयास करें।

1

इनको फिर से लिखने के यूआरएल पर एक नज़र डालें! :)

यहाँ अपने उदाहरण है:

RewriteRule ^lookup/(\d+)/(.*)$ /lookup.php?id=$1&name=$2 

आप का उपयोग करते हैं lookup/123/my-product/, उसका आंतरिक lookup.php?id=123&name=my-product फ़ाइल फोन करता हूँ।

+0

सभी को धन्यवाद, यह वही है जो मुझे चाहिए! –

+0

अब समस्या यह है कि प्रारूप का पालन करने वाले अन्य पृष्ठ काम नहीं करते हैं। मैं एक और पेज http://www.example.com/category.php?id=1 रूप http://www.example.com/category/1/name/ –

+0

वेबसाइट क्या होगा अगर प्रकट करने के लिए प्राप्त करना चाहते हैं उपफोल्डर में है? – Piero

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

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