2010-04-19 26 views
6

पर सबकुछ रीडायरेक्ट करें मैं $_SERVER['REQUEST_URI'] विस्फोट करके और फिर परिणामों के बीच स्विच करके क्लीन यूआरएल करने की कोशिश कर रहा हूं।index.php

हालांकि, उपयोगकर्ता index.php के बाहर जाने के बाद, मुझे लगता है कि मुझे उन यूआरएल को संसाधित करने के लिए उन्हें index.php पर रीडायरेक्ट करने की आवश्यकता है। मैं यह कैसे हासिल कर सकता हूं?

तो उदाहरण के लिए, मैं चाहता उपयोगकर्ता www.domain.com/home/johndoe/... में जाता है index.php (domain.com/index.php) मारा जा इतना है कि यह request_uri के माध्यम से /home/johndoe/ संसाधित कर सकें।

उत्तर

19

.htaccess:

RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?param=$1 [QSA,L] 
+1

@ पिक्सेल: यह करने का यह सबसे आम तरीका है। अगर अपाचे द्वारा कोई फ़ाइल या निर्देशिका नहीं मिली है, तो यह कॉल index.php कॉल करेगा। अब आप अपने index.php में अनुरोधित यूरी को '$ _GET ['param']' के साथ एक्सेस कर सकते हैं। नोट: कुछ सेटअप 'रिवाइटबेस /' पर समस्याएं पैदा हो सकती हैं। यदि ऐसा है, तो बस इसे पाउंड साइन के साथ टिप्पणी करें। – webbiedave

+0

बिल्कुल वही जो मैं खोज रहा था। धन्यवाद! – pixel

2

आप index.php के लिए सब कुछ भेजने सहित, रेगुलर एक्सप्रेशन के आधार पर URL मैप करने के लिए अपाचे के mod_rewrite उपयोग कर सकते हैं,

+1

कभी भी अपाचे डॉक्स पसंद नहीं आया ... जब आप एक विशिष्ट चीज़ की तलाश में हैं तो बहुत शब्दशः – SeanJA

2

आप छवियों की आवश्यकता होगी, और अन्य फ़ाइलों क्या में दिखाई देगा index.php।

RewriteEngine On 

Rewite इंजन

RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|pl|txt)$ 

को चालू करता है फ़ाइल नाम, बराबर जेपीजी नहीं है, तो जेपीईजी ... जो index.php

RewriteRule ^(.*)$ index.php?q=$1 [QSA] 

के लिए की जरूरत सूचकांक करने के लिए "पुन: निर्देशित"। php।

उपयोग में:

q आप हर में चर विभाजित यदि आप /articles/1987/12/20/Répa's birthday/

देना

list($type, $date_year, $date_month, $date_day, $title) = split('[/-]', $_GET['q']); 

आप वास्तव में क्या हो गया आप चाहते हैं के साथ स्लेश होगा पीएचपी $_GET के साथ ।

+0

यह फिर से लिखने की स्थिति थोड़ा अधिक है, और यदि आप फ़ाइल एक्सटेंशन के बिना फ़ाइलों को सहेजते हैं (जो निश्चित रूप से हो सकता है) तो चीजें तोड़ देंगे। – SeanJA

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