كيف يمكن أن عنوان URL مثل http: //localhost/index.php/articles/edit/1/my-first- جزء من العمل دون .htaccess؟

StackOverflow https://stackoverflow.com/questions/966916

سؤال

أنا لا أحصل على هذا:

http: //localhost/index.php/articles/edit/1/my-first-art-Article..

تم ذكر عنوان URL هذا كمثال في وثائق Kohana Framework.. وبعد لقد قمت بتشغيلها في ملفات التثبيت الخاصة بي، ولا يوجد. HTACCESS إلى جانب ذلك الذي لا علاقة له بذلك.

لذلك، كيف يمكن أن يتم استدعاء index.php ولكن بعد ذلك، كمعلمات، تبدو الاشياء مثل الدلائل المضافة إلى عنوان URL؟ هذا لا يبدو "حقيقي".

أم أن هذا مجرد كيفية عمل PHP / Apache / HTTP بالفعل؟ كما أفهمها، / تخبر دائما "مهلا، دليل!". يجعل شعور صفر حقا بالنسبة لي ... كيف هذا ممكن؟ أو هل لديهم مكان ما .htaccess أنني لا أستطيع رؤية / العثور على؟

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

المحلول

في PHP، يمكنك الحصول على البيانات بعد اسم الملف مع $_SERVER["PATH_INFO"] عامل. يتيح لك ذلك الحصول على معلومات بشكل أساسي دون الحاجة إلى استخدام متغيرات الحصول على المتغيرات، مما يعني أن Google و Co تعتقد أنك تستخدم صفحات ثابتة. هذا هو أساسا بديل ل mod_rewrite التي غالبا ما تم تمكينها mod_rewrite في كثير من الأحيان غير ممكن.

قد يكون هذا واضحا لك، لكنه لم يكن لي فورا، هذا لا يعمل بشكل صحيح على صفحات الفهرس إلا إذا كنت تستخدم اسم الملف. على سبيل المثال، http://example.com/test/my/get/params لن تعمل، في حين http://example.com/test/index.php/my/get/params إرادة.

نصائح أخرى

من مستندات أباتشي:

acceptPathinfo التوجيه

سيؤدي هذه الضوابط التوجيهية إلى ما إذا كانت الطلبات التي تحتوي على معلومات واسم مسار زائدة تتبع اسم ملف فعلي (أو ملف غير موجود في دليل موجود) سيتم قبوله أو رفضه. يمكن إتاحة معلومات المسار الزائد للنصوص في متغير بيئة Path_Info.

على سبيل المثال، افترض الموقع / الاختبار / نقاط إلى دليل يحتوي على ملف واحد فقط هنا. HTML. ثم تطلب /test/here.html/more و /test/nothere.html/more كلاهما يجمع / أكثر مثل Path_Info.

لذلك أفترض أنه تم تمكين هذا الإعداد في مكان ما في httpd.conf. لاحظ أن هذا، مثل mod_rewrite، يمكن تمكين / تكوينه في عدد من الأماكن - انظر هنا.

acceptPathinfo. قيد التشغيل لخادمك. :)

أنا لا أستخدم Kohana، لذلك لا أعرف إذا كانت الطريقة الخاصة بي ستكون ذات أي استخدام، ولكن عندما لا يدعم الخادم ملفات .htaccess (أو إعادة كتابة القواعد) يولد "إطار الإطار" الخاص بي مثل هذا:

http://www.domain.com/ ؟/articles/edit/1/my-first-art-article. (لاحظ ال ؟)

إنها طريقة مماثلة تستخدمها إطار الضفدع، فقط تحليل $_SERVER['REQUEST_URI'] (أو $_SERVER['HTTP-X-REWRITE-URL'] على خوادم Windows) وتنفجر على "/".

هذه الطريقة تعيد كتابة مستقلة تماما ولا تزال تنتج المزيد من كبار المسئولين الاقتصاديين أو أقل

آمل أن يكون من أي استخدام لك.

ربما ليس الحال هنا، وبالتأكيد غير مستحسن، وربما لا الإجابة الصحيحة ...

لكن ...

لقد رأيت الأشخاص يستخدمون 404 صفحة لتحليل الطلب ثم قم بتضمين الصفحة الصحيحة بهذه المعلومات.

انظر path_info في متغيرات بيئة CGI..

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