यह प्रश्न डुप्लिकेट हो सकता है। लेकिन मुझे मेरे लिए कोई समाधान नहीं मिला। मैं यूआरएल को फिर से लिखना चाहता हूं, जहां मेरे पास एक और दो स्तर पैरामीटर हैं। पहले पैरामीटर p
है और दूसरा है sp
एकाधिक पैरामीटर के लिए .htaccess के साथ यूआरएल को फिर से लिखें
www.domain.com/home
www.domain.com/index.php?p=home
इशारा करना चाहिए और www.domain.com/projects/99
www.domain.com/index.php?p=projects&sp=99
पर ले जाना चाहिए मैं .htaccess में क्या कैसे करते हैं?
वर्तमान में मेरे htaccess के रूप में followes
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?p=$1
RewriteRule ^([^/]*)/([^/]*)\$ index.php?p=$1&sp=$2 [L]
इस htaccess के साथ समस्या यह है कि इसे सही ढंग से एक स्तर यूआरएल इशारा करता है है। यानी, www.domain.com/home। लेकिन दो स्तर यूआरएल नहीं। अर्थात। www.domain.com/projects/99
धन्यवाद एक बहुत दोस्त। – Firnas
बहुत बहुत धन्यवाद। उपर्युक्त परिवर्तन के बाद, यह ठीक काम कर रहा है। लेकिन जब मैं दूसरे स्तर के यूआरएल पर जाता हूं, तो जावास्क्रिप्ट स्रोत, सीएसएस लिंक और आईएमजी स्रोत जैसे मेरे संदर्भ गलत हैं। यह दूसरी फाइल यूआरएल से संबंधित इन फ़ाइलों को देखता है। मैं यह कैसे तय करुं? – Firnas
यह क्लाइंट साइड समस्या की तरह लगता है: अधिकतर संभावना है कि आप उन संसाधनों के लिए सापेक्ष पथ निर्दिष्ट करते हैं? ब्राउजर केवल अनमोडिफाइड अनुरोध यूआरएल के बारे में जानता है, इसलिए संसाधनों को लोड करने का प्रयास करते समय वह गलत पूर्ण यूआरएल बनाता है। इसलिए या तो आपको सर्वर के बजाय ब्राउज़र को रीडायरेक्ट करना होगा-आंतरिक रूप से अनुरोध urls को पुनः लिखना (बदसूरत, दृश्यमान) या आपको संसाधनों के लिए स्वच्छ यूआरएल बनाना होगा। आम तौर पर सर्वर साइड स्क्रिप्ट के अंदर एक बार एक साफ और ध्वनि 'बेस यूआरएल' को परिभाषित करके किया जाता है और संसाधनों को लोड करने के लिए पूर्ण पथ बनाने के लिए इसका उपयोग किया जाता है। – arkascha