apache - multiple RewriteCond or multiple RewriteRules, which is more efficient? -
क्या अधिक कुशल होगा? एक या एकाधिक मैं पहले विकल्प की ओर झुका रहा हूं क्योंकि कम लाइनें हैं, लेकिन संभवतः क्योंकि तर्क अधिक जटिल है, दक्षता खो जाती है? एक बार आप फिर से लिखना लॉगिंग को चालू करने पर ध्यान देंगे, यह एक तो यह सचमुच निर्भर करता है, कम से कम आवश्यक मैचों की संख्या के मीट्रिक का उपयोग करना , आप क्वेरी स्ट्रिंग की कितनी बार अपेक्षा करते हैं। अगर दूसरी बात जिस पर आपको विचार करना चाहिए नियमों की पठनीयता है। अगर आप दूसरे विकल्प की तरह अंत में, आप शायद सिर्फ यह नियम चाहते हैं: लेकिन मैं मानता हूँ कि आपने इस शर्त को चुनौती दी है ताकि सवाल समझा जा सके और यह वास्तविक दुनिया का मामला नहीं है। < / div> RewriteRule के साथ
[OR] सूची
RewriteCond :
RewriteCond% {QUERY_STRING} ^) के साथ आईडी = 8 [3- 9] $ [या] रीराइट कंडोम% {QUERY_STRING} ^ आईडी = 9 [0-2] $ [OR] पुनर्लेखन% {QUERY_STRING} ^ आईडी = 35 $ पुनर्लेखन नियम ^ index \ .php $ / go- यहाँ/? [एल, आर = 301, एनसी]
पुनर्लेख नियम , प्रत्येक एक
RewriteCond :
पुनर्लेखन% {QUERY_STRING} ^ आईडी = 8 [3- 9] $ पुनर्लेखन नियम ^ .php $ / go-here /? [एल, आर = 301, एनसी] रीराइटकंड% {QUERY_STRING} ^ आईडी = 9 [0-2] $ रीरेमिट नियम ^ index \ .php $ / go-here /? [एल, आर = 301, एनसी] रीराइटकंड% {QUERY_STRING} ^ आईडी = 35 $ पुनर्लेखन नियम ^ .php $ / go-here /? [एल, आर = 301, एनसी]
RewriteRule को पहले लागू किया जाता है, तो अगर वह पैटर्न यूआरआई से मेल खाता होता है, तो
RewriteCond स्थितियों की जांच की जाती है इसका मतलब है कि पहले विकल्प के लिए, आप हमेशा मिलान कर रहे हैं, 4 बार। हालांकि, दूसरे विकल्प में, सबसे अच्छे रूप से, आप 2 गुणा और सबसे खराब मिलान कर रहे हैं, आप 6 गुणा मिलान कर रहे हैं।
आईडी = 83 एक बहुत होता है, तो दूसरा विकल्प बेहतर हो सकता है यदि सभी आईडी उसी के बारे में होती है, तो पहला विकल्प सबसे अच्छा हो सकता है।
RewriteCond /
RewriteRule जोड़ों का एक टन समाप्त करते हैं, तो यह पढ़ने में और अधिक कठिन हो सकता है और जैसा कि आप नियमों को जोड़ / जोड़ / हटा सकते हैं, आप
पुनर्लेखन% 9 [0-2]) $ RewriteRule ^ index \ .php $ / go-here /? [एल, आर = 301, एनसी]
Comments
Post a Comment