सिफारिश अपाचे परियोजना से है:
सामान्य तौर पर, आपको केवल .htaccess फ़ाइलों का उपयोग करना चाहिए जब आपके पास मुख्य सर्वर कॉन्फ़िगरेशन फ़ाइल तक पहुंच न हो। ... एक आम गलत धारणा यह है कि उपयोगकर्ता प्रमाणीकरण और mod_rewrite निर्देशों को .htaccessफाइलों में जाना चाहिए ।
इसलिए कृपया AllowOverride Noneमुख्य httpd.conf (और / या आपके उपखंड Include) में अपने सभी अन्य निर्देशों को सेट करें।
जब अपाचे आपके साथ कॉन्फ़िगर नहीं किया जाता है AllowOverride Noneतो पहले से ही एक (मामूली) प्रदर्शन जुर्माना होता है, चाहे किसी भी .htaccessफाइल का उपयोग न किया गया हो।
ऐसा इसलिए है क्योंकि प्रत्येक अनुरोध के लिए अपाचे को .htaccessप्रत्येक (उप-) निर्देशिका में एक संभावित फ़ाइल की उपस्थिति के लिए जांच करने की आवश्यकता होगी जो अनुरोधित संसाधन के लिए अग्रणी है। उदाहरण के लिए जब किसी फ़ाइल को निर्देशिका / www / htdocs / उदाहरण से बाहर करने का अनुरोध किया जाता है, तो अपाचे को निम्न फ़ाइलों की तलाश करनी चाहिए:
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
और इसलिए, उस निर्देशिका से प्रत्येक फ़ाइल एक्सेस के लिए, 4 अतिरिक्त फ़ाइल-सिस्टम एक्सेस हैं, भले ही उन फ़ाइलों में से कोई भी मौजूद न हो। (यदि AllowOveride / के लिए सेट है)
उस के लिए इस्तेमाल किया गया सिस्टम कॉल ( man 2 stat) अपने आप में इतना महंगा नहीं है और आमतौर पर फाइल-सिस्टम कैश का उपयोग वास्तविक डिस्क को मतदान करने के बजाय किया जाता है, जो वास्तविक IO आवश्यकताओं को सीमित करता है, लेकिन फिर भी यह जोड़ सकता है, क्योंकि यह लेख तर्क देता है।
जब एक या अधिक वास्तविक .htaccessफाइलें वास्तव में मौजूद होती हैं, तो अपाचे को अभी भी इसे openपढ़ने और पढ़ने की जरूरत होती है ( एक और आईओ रीड ऑपरेशन चालू करना और आमतौर पर फाइल सिस्टम विशेषता को अपडेट करने के लिए एक आईओ राइट ऑपरेशन भी atime) और तर्क लागू होने से पहले इसे पार्स कर दें।
इसके विपरीत जब आपके निर्देश मुख्य में होते हैं httpd.conf, जिन्हें केवल एक बार पार्स करने के लिए अपाचे की आवश्यकता होती है, स्टार्टअप पर, प्रत्येक .htaccessफ़ाइल को प्रत्येक अनुरोध के लिए फिर से व्याख्या करने की आवश्यकता होती है।
IO ऑपरेशंस के अलावा .htaccess फ़ाइलों को पार्स करना कितना महंगा है, यह उनकी जटिलता पर निर्भर करता है।
यह निर्धारित करने के लिए सावधानीपूर्वक बेंचमार्किंग ले जाएगा।