سؤال

أحاول إعداد مراسي الصفحة على موقع ويب يستخدم MOD_REWRITE (تشغيل Apache2 على Ubuntu Server 9.04).

يبدو ملف HTACCESS الخاص بي:

RewriteEngine On
RewriteRule ^information.php/([A-Za-z0-9-]+)/?$ information.php?display=$1  [NC,NE]

إذا كنت أستخدم عنوان URL العادي، فسوف تبدو الاستعلام شيئا مثل هذا: http: //mydomain/information.php؟ عرض = أسئلة وأجوبة

آمل أن أحصل على شيء مثل هذا:http: // mydomain / معلومات / الأسئلة الشائعة / التكلفة

هل هذا ممكن؟ فهمي هو أن Modrewite يتجاهل مراسي الصفحات، وأن المتصفح يتعامل معه؟ أنا أظن أنه يمكنني استخدام mod_rewite بطريقة أو بأخرى لتضمين معلومات المرساة مع الطلب، لكنني لم أتمكن من العثور على أي شيء يوثق هذا ويحاول دون جدوى على كتابة ذلك بنفسي لساعات.

شكرا!

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

المحلول

في الواقع، إذا كنت تريد الناتج عنوان URL للحصول على مرساة، ثم نعم، فمن الممكن. فقط لا تنس أنه في التكوينات Apache، # علامات بداية تعليق.

إذا كان ما تريده هو مثل هذا - يدخل المستخدم

http://example.com/page/anchor.
ويتم إعادة توجيهها إلى
http://example.com/؟p=page#anchor.
- ستحتاج إلى استخدام 301 إعادة توجيه، أو شيء من هذا القبيل، لذلك لن يكون شفافا للمستخدم.

الخلاصة: في حين أنه من الممكن كتابة مثل هذه القاعدة إعادة التوجيه، لا يمكن القيام به تماما جانب الخادم. لذلك أعتقد أنك يمكن أن تشير /information/faq ل /information.php?display=faq ثم استخدم عناوين URL مثل:

http://example.com/Information/FAQ#FOO.
التي هي تقريبا ما تريد، بالإضافة إلى أنهم لا يفوضون التخزين المؤقت.

(قف، إنها منتصف الليل بالفعل؟)

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