रिवाइट लॉक prg:
कीवर्ड के साथ उपयोग किया जाता है। रीवाइटमैप टेक्स्ट फ़ाइलों (txt:
), हैशफ़ाइल (dbm:
), यादृच्छिक पाठ (rnd:
) या बाहरी मैपिंग स्क्रिप्ट्स (यह prg:
कीवर्ड) का उपयोग करने के लिए कई कीवर्ड के साथ उपयोग किया जा सकता है। इस मोड में अपाचे शुरू होने पर बाहरी स्क्रिप्ट लॉन्च की जाती है। फिर प्रत्येक आने वाले अनुरोध के लिए, जब mod-rewrite prg:
मानचित्रण को कॉल कर रहा है, तो अपाचे उस स्क्रिप्ट में इनपुट भेजता है और मान प्राप्त करने के लिए आउटपुट स्ट्रीम पढ़ता है।
रिवाइट लॉक इस प्रक्रिया में समानांतर अनुरोधों को रोकने के लिए उपयोग किया जाना चाहिए (इसलिए बाहरी प्रक्रिया में समानांतर इनपुट) इस प्रक्रिया मानक आउटपुट पर उत्तर मिश्रण करने के लिए। यह एक बाहरी लॉकिंग तंत्र है (एक फ़ाइल, दिया गया पथ, जो शास्त्रीय टोकन है, केवल एक उपयोगकर्ता है) इस बाहरी मैपिंग स्क्रिप्ट को कॉल के क्रमबद्धता को लागू करने के लिए।
आईएमएचओ इसे पीआरजी का उपयोग करते समय पारदर्शी रूप से मॉड-रीराइट द्वारा लागू किया जाना चाहिए: क्योंकि मुझे कभी भी एक प्रिग केस नहीं मिला है जहां यह लॉकिंग चीज अनिवार्य नहीं है
।
संपादित करें:
खैर वास्तव में आप एक बाहरी पीआरजी इस्तेमाल कर सकते हैं: rewriteLock बिना अगर उत्पादन की यादृच्छिकीकरण एक समस्या, किसी दिए गए प्रवेश आप एक प्रतिक्रिया है जो किसी अन्य के लिए दिया गया था प्राप्त कर सकते हैं के लिए अर्थात नहीं है प्रविष्टि, कुछ उन्नत आरएनडी कर रही एक स्क्रिप्ट में :, अपनी खुद की राउंड-रॉबिन सेवा। लेकिन अगर आउटपुट को एंट्री को प्रतिबिंबित करना चाहिए, तो आपको उस सेमफोर की ज़रूरत है, जो निश्चित रूप से रीवाइटमैप प्रक्रिया को धीमा कर सकता है।
तो यदि आप केवल हैशैप या टेक्स्टमैप का उपयोग कर रहे हैं तो आपको रिवाइट लॉक सेट करने की आवश्यकता नहीं है।
संपादित करें:
आप इस thread पर उपयोगी जानकारी के मिल सकता है इस तथ्य ताला फ़ाइल में केवल कुछ मिलीसेकंड के लिए मौजूद है, जब अपाचे पीआरजी कॉल करता है और एक जवाब के लिए इंतजार कर रहा है की तरह।
संपादित करें: सवाल एक अजीब तथ्य पर है:
मूल देव RewriteMap
यह अजीब है, क्योंकि RewriteMap पर काम नहीं कर सकते हैं के साथ एक .htaccess फ़ाइल का उपयोग किया। htaccess फ़ाइलें, .htaccess कॉन्फ़िगरेशन प्रविष्टियां गतिशील रूप से पढ़ी जाती हैं और संदर्भ पंक्ति में केवल here बताई गई है मुख्य कॉन्फ़िगरेशन में या वर्चुअलहोस्ट कॉन्फ़िगरेशन में सेट किया जाना चाहिए। यह किसी स्थान, निर्देशिका या एक। Htaccess में नहीं हो सकता है। तो संभावना है कि यह कभी भी .htaccess में काम नहीं करेगा।
अब @puk ने रीवाइटमैप उपयोग के उदाहरण के लिए कहा। ठीक है, "RewriteMap" ढेर अतिप्रवाह में के लिए खोज आप कई वास्तविक उदाहरण दिखाएगा:
+1 इस Mod_Rewrite के सबसे खराब समझाया पहलुओं मैं अभी तक देखा है में से एक है। – puk