إعادة توجيه PHP (رأس إعادة التوجيه) - نصائح

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

لحسن الحظ ، هناك حل بسيط: إعادة التوجيه ، للحفاظ على تناسق التنقل (و SEO) للموقع ، حتى لو كانت جميع الملفات قد تغيرت الأماكن.

رؤوس HTTP

عمليات إعادة التوجيه هي رؤوس HTTP. ومع ذلك ، وفقًا لبروتوكول HTTP ، يجب إرسال رؤوس HTTP قبل أي نوع آخر من المحتوى ، مما يعني أنه لا يجب إرسال أي أحرف قبل استدعاء وظيفة الرأس ، ولا حتى المساحة!

وبعبارة أخرى ، الوظيفة رأس () يجب أن يكون تستخدم قبل أي رمز HTML.

لمزيد من المعلومات ، اقرأ هذا المقال: الخطأ "الرؤوس المرسلة بالفعل بواسطة"

فيديو

إعادة توجيه بسيطة

لإعادة توجيه الزائر إلى صفحة أخرى (مفيد بشكل خاص في الحلقة الشرطية) ، فقط استخدم الكود التالي:

<؟ php header ('الموقع: <ital> mapage.php </ ital>') ؛ ؟>

حيث mypage.php يمثل عنوان الصفحة التي تريد إعادة توجيهها. يمكن أن يكون هذا العنوان مطلقًا ويمكن أن يتضمن أيضًا معلمات النموذج

mypage.php؟ param1 val1 = & = m2 val2

).

المسار النسبي / المطلق

من الناحية المثالية ، تفضل المسار المطلق من جذر الخادم (DOCUMENT_ROOT) ، من النموذج التالي:

<؟ php header ('الموقع: <ital> /directory/mapage.php </ ital>') ؛ ؟>

إذا كانت الصفحة الهدف موجودة على خادم آخر ، فأنت تذكر عنوان URL الكامل ، بالشكل التالي:

<؟ php header ('الموقع: <ital> http: </ ital> <ital> // www.commentcamarche.net/forum / </ ital>') ؛ ؟>

عمليات إعادة التوجيه المؤقتة / الدائمة

افتراضيًا ، يكون نوع إعادة التوجيه الموضح أعلاه هو إعادة توجيه مؤقتة. هذا يعني أن محركات البحث مثل Google لا تأخذها في الاعتبار بالنسبة لكبار المسئولين الاقتصاديين.

لذلك ، إذا كنت تريد أن تخبر محركات البحث أن الصفحة A موجودة الآن في الموقع B ، فيجب عليك استخدام الكود التالي في بداية ملف PHP المطابق للصفحة A:

<؟ php header ('Status: 301 Moved نهائيا' ، خطأ ، 301) ؛ header ('الموقع: address_of_the_page_B') ؛ ؟>

Exemple

تحتوي الصفحة على الكود التالي:

<؟ header ('Status: 301 Moved Permanently'، false، 301)؛ رأس ('الموقع: / المحتويات / طابعة 748') ؛ خروج ()؛ ؟>

لذلك عندما تنقر على الرابط أعلاه ، يتم نقلك تلقائيًا إلى الصفحة

بالإضافة إلى ذلك ، إنه إعادة توجيه دائمة (الحالة: تم نقل 301 بشكل دائم). وبالتالي ، إذا كتبت عنوان URL الأول في Google ، فسوف يعطيك عنوان العنوان الثاني كدليل على أنه قد أخذ في الاعتبار إعادة توجيه

تفسير كود PHP

سيتم تفسير كود PHP بعد استدعاء وظيفة header () بواسطة الخادم ، حتى لو كان الزائر قد انتقل بالفعل إلى العنوان المحدد في إعادة التوجيه ، مما يعني أنه في معظم الحالات لديك مصلحة في القيام بذلك. اتبع رأس وظيفة () للخروج من الوظيفة () حتى لا تجعل الخادم يعمل من أجل لا شيء:

<؟ php header ('Status: 301 Moved نهائيا' ، خطأ ، 301) ؛ header ('Location: address')؛ خروج ()؛ ؟>

انظر أيضا

هذه المقالة ظهرت لأول مرة CCM