هتكس رابط إعادة كتابة مساعدة
سؤال
ولدي URL إعادة كتابة التالية:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs
RewriteRule ^(.*)$ index.php?page=$1 [PT,L]
والآن أريد أن أضيف استثناء، أنه إذا كان URL هو شيء من هذا القبيل mysite.com/abc ينبغي أن تجاهله وكل شيء داخله أيضا. كما ينبغي أن تستبعد mysite.com/abc/dfgs من هذا إعادة كتابة.
وكيف يمكنني تحقيق ذلك؟
المحلول
إذا / اي بي سي هو دليل موجود، يمكنك وضع ملف .htaccess آخر هناك مع
RewriteEngine Off
إذا كان حقا مجرد سلسلة واحدة تريد ليس كتابة (سواء كان موجودا أم لا)
RewriteCond %{REQUEST_URI} !^/abc
ولن كتابة إذا يبدأ المسار المطلوب مع "/ اي بي سي"
لاختبار قواعد إعادة الكتابة دون لخبطة الموقع لمتصفحات العادية (وليس التي يجب أن تكون التحرير في بيئة حية وبطبيعة الحال، وهذا هو محض :-) افتراضية)، لقد وجدت ما يلي مفيدة جدا:
RewriteCond %{REMOTE_ADDR} 12.34.56.78 # <-- where that's your IP address
نصائح أخرى
وهذا يجب تجنب إعادة كتابة إذا كان URI يحتوي على اي بي سي. هذا قد يكون أو لا يكون بالضبط ما تريد. إذا لم يتم تعديل سؤالك.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#Rewrite ONLY if the REQUEST does NOT contain abc
RewriteCond %{REQUEST_URI} !abc
# Rewrite all other URLs
RewriteRule ^(.*)$ index.php?page=$1 [PT,L]