मुझे उम्मीद है कि mod_rewrite और Apache के साथ ऐसा करने का एक तरीका है, लेकिन शायद यह भी विचार करने का एक और तरीका है।केवल तभी अनुरोधों को पुनर्निर्देशित करें जब फ़ाइल नहीं मिली है?
मेरी साइट पर, मेरे पास ग्राहकों के लिए साइट के पुन: स्किन किए गए संस्करणों के लिए निर्देशिकाएं स्थापित की गई हैं। यदि वेब रूट /home/blah/www
है, तो ग्राहक निर्देशिका /home/blah/www/clients/abc
होगी। जब आप किसी वेब ब्राउज़र के माध्यम से क्लाइंट निर्देशिका तक पहुंचते हैं, तो मैं क्लाइंट निर्देशिका में मौजूद किसी भी अनुरोधित फ़ाइलों का उपयोग करना चाहता हूं। अन्यथा, मैं इसे वेब रूट में फ़ाइल का उपयोग करना चाहता हूं।
उदाहरण के लिए, मान लें कि क्लाइंट को अपने index.html
की आवश्यकता नहीं है। इसलिए, कुछ कोड निर्धारित करेंगे कि index.html
/home/blah/www/clients/abc
में नहीं है और इसके बजाय /home/blah/www
में से एक का उपयोग करेगा। ध्यान रखें कि मैं किसी भी समय क्लाइंट को वेब रूट पर रीडायरेक्ट नहीं करना चाहता हूं, अगर मैं क्लाइंट निर्देशिका ने अपनी प्रति निर्दिष्ट नहीं की है तो मैं बस उस रूट के साथ वेब रूट की फ़ाइल का उपयोग करना चाहता हूं। वेब ब्राउज़र को अभी भी /clients/abc
पर इंगित करना चाहिए कि फ़ाइल वहां मौजूद है या रूट में है या नहीं। इसी तरह, यदि ग्राहक निर्देशिका में news.html
का अनुरोध है और मौजूद है, तो बस वेब रूट के news.html
की बजाय उस फ़ाइल को सेवा दें। उपयोगकर्ता का अनुभव निर्बाध होना चाहिए।
मुझे किसी भी फ़ाइल नाम पर अनुरोध के लिए काम करने की आवश्यकता है। अगर मुझे इसकी आवश्यकता है, उदाहरण के लिए, प्रत्येक फ़ाइल के लिए .htaccess
पर एक नई लाइन जोड़ें, जिसे मैं रीडायरेक्ट करना चाहता हूं, बल्कि यह उद्देश्य को हरा देता है क्योंकि बहुत अधिक रखरखाव की आवश्यकता होती है, और बड़ी संख्या में फाइलों को देखते हुए त्रुटियों के लिए एक अच्छा मौका होता है।
अपने उदाहरणों में, कृपया संकेत दें कि आपका कोड क्लाइंट निर्देशिका में .htaccess फ़ाइल में है या वेब रूट। वेब रूट को प्राथमिकता दी जाती है।
जो कुछ मैं चाहता हूं उसे करने के लिए बहुत छोटा लगता है। क्या आप तर्क को थोड़ा सा समझा सकते हैं? धन्यवाद! – DivideByHero