هتكس rewritecond كتابة مستوى حالة مجلد 2 = معلومات
-
05-07-2019 - |
سؤال
وكنت أرغب في وضع .htaccess
لإعادة كتابة:
example.com/bla/info/
إلى
example.com/info/index.php?q=bla
example.com/bla/info/txt/
إلى
example.com/info/index.php?q=bla&t=txt
وكنت أرغب في المتصفح لا يزال لعرض:
example.com/bla/info/txt/
لم أكن أريد كتابة في إعادة كتابة مستوى 2، مثل:
example.com/bla/xxx/
أو
example.com/ccc/zzz/aaa/
ولكن
example.com/silly/info/
وستعمل كذلك
example.com/strange/info/mytxt/
هل هذا معقول؟
وأي مساعدة؟
المحلول
إذا كنت بدء أسلوبك مع ^ ووضع حد لها مع $، فإن الحكم لا تنطبق إلا إذا كان نتيجة سلسلة كاملة.
RewriteRule ^/bla/info/$ /info/index.php?q=bla
RewriteRule ^/bla/info/txt/$ /info/index.php?q=bla&t=txt
إذا كنت تستخدم لا تستخدم الخيار [R]، فإن URL هو مبين في متصفح يكون مهما أدخلها المستخدم.
هل تحاول جعل هذا التعيين؟ إذا كان الأمر كذلك، يمكنك استخدام التعابير المنطقية نوع مطابقة واستبدال متغير. لجعل 'بلوخ "تطابق أي سلسلة تصل إلى الخط المائل المقبل (/)، استخدم
([^/]+)
وفي نمط ومرجع له مع $ 1 في استبدال الخاص بك.
RewriteRule ^/([^/]+)/info/$ /info/index.php?q=$1
RewriteRule ^/([^/]+)/info/([^/]+)/$ /info/index.php?q=$1&t=$2
وأوصي أباتشي صفحات الويب عن mod_rewrite و للحصول على مزيد من المعلومات .
[تحرير. حددت القواعد لا تتضمن اسم المضيف في نمط، كما برزت الملصق الأصلي خارج.]
و- منتديات BMB
نصائح أخرى
وحصلت لي في الطريق الصحيح.
وانتهى بي الأمر مع شيء من هذا القبيل:
RewriteRule ^([^/\.]+)/info/?$ example/info/index.php?q=$1 [L]
وشكرا جزيلا