عدم الحصول على معلمة سلسلة الاستعلام

أواجه مشكلة للحصول على متغير من سلسلة الاستعلام. لقد استخدمت إعادة توجيه htaccess لصفحتي.

لقد كتبت بعد القاعدة.

RewriteEngine On
RewriteRule ^([a-zA-Z0-9-/]+).htm$ category.php?uniqname=$1
RewriteRule ^([a-zA-Z0-9-/]+).htm/$ category.php?uniqname=$1

ما تفعله هذه القاعدة إذا كتبت gold-plated-chain.htm هو المتصفح الذي أقوم بإعادة التوجيه إليه <�كود> category.php؟ uniqname = مطلية بالذهب سلسلة </القانون> الآن أريد تمرير متغير واحد لذلك أفعل بهذه الطريقة gold-plated-chain.htm؟ page = 2 ولكن لا يمكنني الحصول على متغير الصفحة على category.php أنا أعيد التوجيه بشكل صحيح ولكن بدون ذلك متغير الصفحة

شكرا لكم مقدما

0

3 إجابة

أنا/أعتقد/ما تراه هو علامة QSA (راجع http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html ) والتي يجب أن ترفق سلاسل الاستعلام.

حاول إضافة [QSA] إلى نهاية خطوط RewriteRule الخاصة بك.

2
وأضاف

تحتاج إلى إضافة علامة [QSA] لإخبار محرك إعادة الكتابة لدمج سلاسل الاستعلام. من الحكمة دائمًا إضافة علامة [L] وتحديد قاعدة. من الحكمة أيضًا أن تهرب "." الأحرف كما يتم تفسيرها على أنها بطاقة جامحة يمكنك أيضًا دمج هذين النظامين. بالتالي:

RewriteEngine On
RewriteBase   /
RewriteRule   ^([\w-/]+)\.htm/?$   category.php?uniqname=$1  [L,QSA]

راجع للشغل ، \ w هو مجرد اليد القصيرة a-zA-Z0-9 .

1
وأضاف

يجب عليك إزالة ^ من regexp. هذا يعني بداية السلسلة.

0
وأضاف
لدي التحقق من ذلك ولكن لا يعمل
وأضاف المؤلف Hardik, مصدر