في MOD_REWRITE / ISAPI_REWRITE، كيف تؤثر القواعد على نطاقات محددة؟
-
13-09-2019 - |
سؤال
لقد هاجرت مؤخرا من مضيف 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
علم إلى القاعدة الأخيرة مثل علامة السلسلة.
لا تنتمي إلى StackOverflow