2009-03-25 15 views
7

सरल सवाल। वहाँ मैं अपने .htaccess में हो सकता है या मैं अपाचे सब मुझ पर फैशनेबल जा रहा बिना वहाँ में उनमें से एक असंख्य रख सकते हैं कि कितने RewriteRules के रूप में कोई सीमा है?बिना किसी परेशानी के .htaccess में आपके कितने रिवाइट्रूल्स हो सकते हैं?

वहाँ एक रिश्तेदार सीमा जहां सर्वर बस dives क्योंकि के माध्यम से पुनरावृति करने के लिए कई नियमों के देखते हैं है?

धन्यवाद!

उत्तर

3

अपने RewriteRules शामिल कई फ़ाइल (एफ) विद्यमान है या मौजूदा है यूआरएल (यू) झंडे, के बाद से उन subrequests हैं, तो आप एक प्रदर्शन हिट देख सकता था। उन लोगों के बाहर, मुझे ऐसी स्थिति का अनुभव नहीं हुआ है जहां कई रिवाइट्रूल्स प्रदर्शन पर प्रतिकूल प्रभाव डालते हैं और मेरे वर्तमान कार्यान्वयन की अच्छी राशि है।

आप सभी रीव्राइट नियमों के माध्यम से उन्हें इस तरह से आदेश देकर पुन: प्रयास करने की आवश्यकता को सीमित कर सकते हैं कि प्रक्रिया में बाद में अधिक महंगी चेक (यदि संभव हो) हो, तो पहले की सशर्त शॉर्ट सर्किट से बाहर हो सकती है आपके पुनर्लेख तर्क और प्रक्रिया में बाद में अधिक महंगा नियमों की गणना को बचाते हैं।

6

आप जानना चाहते हैं कि .htaccess configuration files are being processed on every request है।

तो यदि आपके पास 1000 नियमों के साथ .htaccess फ़ाइल है, तो सबसे बुरा मामला यह है कि जब भी कोई अनुरोध इस निर्देशिका को हिट करता है तो हर 1000 नियमों का परीक्षण किया जाता है।

इसलिए यदि आप एक संरचना जहां एक नियम को जल्द से जल्द एक अनुरोध से मेल खाता उपयोग करना चाहिए। नियम जो अधिक लगातार अनुरोधों को संभालते हैं उन्हें कम से कम उन लोगों के सामने उपस्थित होना चाहिए जो प्रसंस्करण निर्धारित करते हैं (L flag देखें)। ruleset processing पता है कि कैसे नियमों संसाधन हो रहा है के बारे में पढ़ें (भी RewriteLogLevel direcitve देखें)।

एक और कारक नियमित अभिव्यक्तियां हैं: अस्पष्ट या जटिल लोगों की तुलना में बेहतर "सरल" और कुशल नियमित अभिव्यक्तियों का बेहतर उपयोग करें। आपको यह देखना चाहिए कि नियमित अभिव्यक्तियों का अर्थ कैसे महंगा है और महंगे लोगों से बचने के लिए संसाधित किया जाता है और उनमें से अधिकतर लाभ प्राप्त होता है।

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