سؤال

لقد قمت مؤخرًا بإضافة القاعدة أدناه في httpd.conf لـ ISAPI rewrite على خادم IIS للتأكد من أنها تتخلف دائمًا عن أسماء الملفات والأدلة المنخفضة.

RewriteRule ^(.*[A-Z].*)$ $1 [CL,R=301,L]

كل هذا جيد وداندي لكل جزء من الموقع باستثناء دليل واحد يمكننا الاتصال به /MisbehavingDir, ، تمتلئ الرمز الموجود في هذا الدليل بالذات بأسماء الملفات المختلطة والكثير من البرمجة النصية من جانب الخادم والعميل والتي يجب إعادة كتابتها لاستخدام جميع الحالة السفلية من أجل العمل بشكل صحيح (مع إعادة كتابة المطبوعات أعلاه يبدو أنها تضرب بضعة 301s في الأماكن الخاطئة التي تسبب هذا الجزء من الموقع يعمل بشكل سيء على أقل تقدير).

نظرًا لأنني لست في مزاج لإعادة كتابة هذا الجزء من الموقع ، أود أن أجد طريقة جيدة لتعديل Regex أعلاه بحيث يطابق كل شيء باستثناء المسارات التي تبدأ بسوء التصرف ولأن regex-fu ليس جيدًا حقًا بما فيه الكفاية كنت أحسب سأطلب هنا.

هل هناك حل "جميل" بسيط لهذا يريد مشاركته أو هل يجب أن أخصص عدة أيام لإعادة كتابة التطبيق ، ثم اختباره والذهاب إلى هذا الرقص كله؟

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

المحلول

حسنًا ، من الواضح أن الحيلة كانت إضافة بيان إعادة كتابة يشبه شيئًا RewriteCond %{URL} ^(?!/MisbehavingDir/.*$) لجعل isapi إعادة كتابة تخطي القاعدة التالية.

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