إعادة توجيه صفحة الويب - URL Redirect

URL Redirection - إعادة توجيه المتصفح

شرح لـ كيفية إعادة توجيه (تحويل) المتصفح أو صفحة الويب إلى صفحة أخري - URL Redirect، وأمثلة لـ كود اعادة التوجيه بإستخدام لغة الترميز HTML وسم الميتا، أو لغة البرمجة جافاسكريبت JavaScript بإستخدام window.location، أو لغة البرمجة PHP بإستخدام الدالة header.

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

إعادة التوجيه بإستخدام لغة الترميز HTML

HTML

<meta http-equiv="refresh" content="30;url=https://abuelfateh.com" />

الكود السابق عبارة عن وسم ميتا (meta tag) يتم كتابته بداخل الوسم <head> ، ويحتوي على الوصف http-equiv وهو الوصف المسئول عن إعادة تحميل صفحة الويب الحالية، والوصف content وهو يحتوي على قسمين يفصل بينهما علامة الفاصلة المنقوطة ; حيث يحتوي القسم الأول على عدد الثواني التي يتوجب على المتصفح إنتظارها قبل إعادة التحميل أو التوجيه، حيث في المثال سوف ينتظر المتصفح لمدة 30 ثانية، ويمكن وضع القية 0 لإجبار المتصفح على إعادة التوجيه مباشرة دون الإنتظار لأي وقت، أما القسم الثاني من قيمة الوصف content هو عبارة عن عنوان أو رابط صفحة الويب التي ترغب في تحويل الزائر إليها، ولاحظ أنه يجب كتابة عنوان الرابط كاملا ويتم كتابته مباشرة بعد علامة =.

إعادة التوجيه بإستخدام لغة جافا سكريبت JavaScript

 لإعادة توجيه المستخدم إلى صفحة ويب بشكل مباشر نستخدم الكود التالي

JavaScript

window.location = "https://abuelfateh.com";

في حالة تحويل المستخدم لعنوان أو صفحة أخرى بعد وقت محدد، نستخدم الكود التالي

setTimeout( function () {
  window.location = "https://abuelfateh.com";
}, 1000 * 30 );

لاحظ في الكود السابق قمنا بإستخدام الدالة setTimeout وهي دالة متواجدة في لغة البرمجة جافاسكريبت، ووظيفتها تشغيل أي أكواد جافاسكريبت بعد وقت محدد، وهذا الوقت يتم تحديده بالثواني، مع العلم بأن الثانية الواحدة تكتب بالرقم 1000 ولذلك قمت بكتابة المعامل الثاني للدالة 30 * 1000 أي 30 ثانية، وسوف تلاحظ إستخدام نفس الكود من المثال السابق بداخل الدالة وهو المسئول عن تحويل رابط المتصفح إلى عنوان آخر.

إعادة توجيه المتصفح بإستخدام لغة البرمجة PHP

PHP

// Direct redirection
header("Location: https://abuelfateh.com");
exit();

// Redirect after 30 seconds
header("Refresh: 30; URL: https://abuelfateh.com");
exit();

من المثال السابق، قمنا بإستخدام الدالة header وهي دالة خاصة بلغة البرمجة PHP ووظيفتها إرسال بيانات أو إرشادات للمتصفح توصف بها محتويات صفحة الويب، وهي دالة لها إستخدامات عديدة، ولكن في سياق هذا المقال سوف نذكر كيفية إستخدامها لتحويل المستخدم إلى صفحة ويب أخرى، في المثال الأول حيث إستخدمنا الأمر Location سوف يتم تحويل المستخدم بشكل مباشر، أما في المثال الثاني فهو أشبه بوسم ميتا في لغة الترميز HTML والذي ذكرنا إستخدامه سابقا.

يجب الأخذ في الإعتبار أن الدالة header يجب أن تستخدم قبل أن يتم إرسال أي بيانات إلى المتصفح، أي أنها يجب أن تكتب في بداية أكواد ملف الـ PHP وقبل أي أكواد أخرى.

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

إعادة توجيه رابط الموقع بإستخدام ملف htaccess

دائما ما يتوجب عليك تحديد رابط واحد للموقع، لأنه شرط أساسي في عملية تحسين محركات البحث، أي أن تستخدم الموقع بدون إضافة www أو بإضافة الرابط الفرعي www، وذلك لأن الموقع https://abuelfateh.com/، يعتبر غير الموقع http://www.abuelfateh.com/، بالنسية إلى محركات البحث، وأفضل طريقة لتطبيق ذلك هي بإستخدام ملف htaccess، وسوف أذكر الطريقتين ولكن يجب عليك تنفيذ واحدة فقط

إعادة توجيه رابط الموقع بدون www

<IfModule mod_rewrite.c>
    RewriteEngine On
 
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^/?(.*)$ http:\/\/%1/$1 [R=301,L]
</IfModule>

في الكود السابق إذا كنت تستخدم شهادة SSL في موقعك، فكل ما عليك هو إستبدل البروتوكول http بـ https، أي تضيف الحرف s بعد الكود المكتوب باللون الأحمر.

إعادة توجيه رابط الموقع بإضافة www

<IfModule mod_rewrite.c>
    RewriteEngine On
 
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^ http:\/\/www.%1%{REQUEST_URI} [R=301,L]
</IfModule>

وهنا أيضا كل ما عليك هو إستبدال البروتوكول http بـ https إذا كنت تستخدم شهادة SSL للموقع.

فضلا لا أمرا: لكل زوارنا الكرام، بقليل من الجهد، الرجاء ترك تعليق لتقييم مدى رضائكم عن المقال، و مشاركة الموضوع لتعم الفائدة، ولكم جزيل الشكر على ذلك.


841

Comments (0)

Add new comment
  • 2000  Character remaining.
  • Please enter Characters.Change Captcha Image