سؤال

أعلم أن هناك الكثير من الأشياء الإيجابية التي تنجزها عملية إعادة الكتابة.ولكن هل هناك أي سلبية؟من الواضح أنه إذا كانت لديك قواعد مكتوبة بشكل سيء فسوف تواجه مشاكل.ولكن ماذا لو كان لديك موقع ذو حجم كبير وتستخدم إعادة كتابة التعديلات باستمرار، فهل سيكون لذلك تأثير كبير على الأداء؟لقد أجريت بحثًا سريعًا عن بعض المعايير على Google ولم أجد الكثير.

هل كانت مفيدة؟

المحلول

لقد استخدمت mod_rewrite على المواقع التي تحصل على الملايين/الزيارات/الشهر دون أي مشكلات كبيرة في الأداء.يجب عليك معرفة عمليات إعادة الكتابة التي سيتم تطبيقها أولاً وفقًا لقواعدك.

من المرجح أن يكون استخدام mod_rewrite أسرع من تحليل عنوان URL بلغتك الحالية.

إذا كنت قلقًا حقًا بشأن الأداء، فلا تستخدمه .htaccess الملفات، تلك بطيئة.ضع جميع قواعد إعادة الكتابة الخاصة بك في إعدادات Apache، والتي تتم قراءتها مرة واحدة فقط عند بدء التشغيل. .htaccess يتم إعادة تحليل الملفات عند كل طلب، بالإضافة إلى كل .htaccess الملف في المجلدات الأصل.

نصائح أخرى

لتكرار ما يقوله رايان أعلاه، القواعد في أ .htaccess يمكن أن يضر حقًا بأوقات التحميل على موقع مزدحم مقارنةً بوجود القواعد في ملف التكوين الخاص بك.لقد جربنا هذا في البداية (حوالي 60 مليون صفحة/شهرًا) ولكننا لم نستمر طويلاً حتى بدأت خوادمنا في التدخين :)

الجانب السلبي الواضح لوجود القواعد في التكوين الخاص بك هو أنه يتعين عليك إعادة تحميل التكوين كلما قمت بتعديل القواعد الخاصة بك.

العلامة الأخيرة ("L") مفيدة لتسريع تنفيذ القواعد الخاصة بك، بمجرد أن تكون القواعد التي يتم الوصول إليها بشكل متكرر في الأعلى ويتم تقييمها أولاً.يمكن أن يجعل الصيانة أكثر صعوبة إذا كان لديك مجموعة طويلة من القواعد - لقد أهدرت بضع ساعات محبطة للغاية في صباح أحد الأيام بينما كنت أقوم بالتحرير في منتصف قائمة القواعد الخاصة بي وكان لدي واحدة في الأعلى كانت تحاصر أكثر من منوي!

لقد واجهنا صعوبة في العثور على المعايير ذات الصلة أيضًا، وانتهى بنا الأمر إلى إعداد مجموعة الاختبارات الداخلية الخاصة بنا.بمجرد أن قمنا بفرز قواعدنا وترتيبها بشكل صحيح وإدخالها في مؤتمر Apache الخاص بنا، لم نجد الكثير من التأثير السلبي على الأداء.

إذا كنت قلقًا بشأن أداء Apache، هناك شيء واحد يجب مراعاته إذا كان لديك الكثير من قواعد إعادة الكتابة وهو استخدام علامة "تخطي".إنها طريقة لتخطي المطابقة على القواعد.لذلك، يتم حفظ أي نفقات عامة تم إنفاقها على المطابقة.

لكن كن حذرًا، فقد كنت أعمل في مشروع استخدم علامة "التخطي" كثيرًا، مما جعل الصيانة مؤلمة، نظرًا لأنها تعتمد على الترتيب الذي تتم به كتابة الأشياء في الملف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top