في MOD_REWRITE / ISAPI_REWRITE، كيف تؤثر القواعد على نطاقات محددة؟

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

سؤال

لقد هاجرت مؤخرا من مضيف Linux لخادم مخصص مع Windows 2003، كان لدي موقع واحد فقط باستخدام MOD_REWRITE، ولكن مع ISAPI _Rewrite 3 مجانا، والقواعد عالمية.

كيف أكتب شرطا للتأثير فقط على "mysite.com" وليس الآخرين؟

هذا هو ملف httpd.conf الخاص بي

# Helicon ISAPI_Rewrite configuration file
# Version 3.1.0.66

RewriteEngine On
RewriteBase /
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?page=$1 
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?page=$1&id=$2 [L]

أنا لا أريد شراء ISAPI_REWRITE فقط لهذا الموقع واحد

شكرا لك

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

المحلول

على الأقل فيما يتعلق apache's mod_rewrite., ، يمكنك استخدام C علم لسلسلة القواعد مثل هذا:

RewriteCond %{HTTP_HOST} =example.com
RewriteRule ^ - [C]
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?page=$1 [C]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?page=$1&id=$2 [L]

إذا كانت قاعدة واحدة لا ليس تطابق، يتم تخطي جميع القواعد التالية بالسلاسل. هذا يعني، إذا كانت القاعدة الأولى لا تتطابق (اسم المضيف ليس كذلك example.com)، يتم تخطي القواعد المعلقة التالية. لاحظ عدم إضافة C علم إلى القاعدة الأخيرة مثل علامة السلسلة.

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