سؤال
وأنا تكافح من أجل الحصول على بعض التعليمات البرمجية تعمل لموقع متجر ASP القديم أدير - واضاف لقد التالية التي تعمل بشكل جيد تماما
RewriteBase /
RewriteRule ^cat/[^?/]*_(\d+)\.htm /store/prodList.asp?idcategory=$1 [QSA]
والمشكلة هي إذا كانت الصفحة التصنيف لديه أكثر من صفحة واحدة! كما أنه يضيف آخر اثنين من المعلمات إلى سلسلة استعلام مواقع المعلومات مثل ذلك
/store/prodList.asp?idcategory=102&curPage=2&sortField=sortorder
وأنا أبحث عن مثال أخذ ثلاث معلمات سلسلة استعلام مواقع المعلومات أكثر وإلحاق ذلك إلى إعادة كتابة URL ... يمكن لأي شخص مساعدة من فضلك؟
وهكذا على سبيل المثال، في الوقت الراهن URL التالية يعمل بشكل جيد
cat/productname_5.htm ... equates to ... /store/prodList.asp?idcategory=5
ولست بحاجة إلى فعل شيء كما يلي عندما يكون لدي أكثر من صفحة واحدة؟ ولكن لا نعرف بناء الجملة ISAPI؟
cat/productname_5_2_sortorder.htm ... would equate to ... /store/prodList.asp?idcategory=5&curPage=2&sortField=sortorder
وآمل أن أكثر منطقية؟
المحلول
وأعتقد أن هذا هو ما كنت طالبا، تعيين [L] حجة لجعله يتوقف مطابقة في المباراة الأولى.
ولكن [L] يتطلب منك أن تأمر بها من قبل معظم المقيدة الأولى، 4 وسائط، ثم 3، 2 الخ ...
ReWriteRule ^/store/([0-9]+)/([0-9]+)/{0,1}$ /store/prodList.asp\?idcategory=$1&curPage=$2 [L]
ReWriteRule ^/store/([0-9]+)/([0-9]+)/([A-Za-z]+)/{0,1}$ /store/prodList.asp\?idcategory=$1&curPage=$2&sortField=$3 [L]