قم بتكييف mod_rewrite RewriteRule الخاص بـ Apache بحيث لا يعمل على الدلائل الفعلية

StackOverflow https://stackoverflow.com/questions/125850

  •  02-07-2019
  •  | 
  •  

سؤال

لدي RewriteRule الذي يعمل بشكل جيد للغاية :-)

RewriteRule ^([^/]*)/$ /script.html?id=$1 [L]

الشيء السيئ في هذه القاعدة هو أنها تتطابق أيضًا مع الأدلة الفعلية التي لا أريدها.

كيف يمكنني أن أقول mod_rewrite لتجاهل الدلائل الفعلية وتطبيق القاعدة المذكورة أعلاه فقط في حالة عدم وجود الدليل المطابق؟

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

المحلول

نلقي نظرة على RewriteCond.ضع ما يلي قبل القاعدة الخاصة بك لاستثناء الدلائل والملفات

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

نصائح أخرى

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/$ /script.html?id=$1 [L]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top