كيفية إصلاح الخطأ HTTP 302

قد تتعرض أثناء إدارتك لموقع ووردبريس لظهور الخطأ HTTP 302، لذا سنقوم في هذا المقال بتوضيح بعض المفاهيم حول هذا الخطأ، وطرح عدة طرق تستطيع استخدامها لإصلاح المشكلة والتخلص منها.

في الواقع يعتبر الكود HTTP 302 طريقة فعالة لإعادة توجيه مستخدمي موقع الويب إلى عنوان URL مختلف مؤقتًا. وبالرغم من ذلك فإذا كان موقعك يعرض عملية إعادة توجيه  302 عن طريق الخطأ وليس من خلال إعدادك له فهذه دلالة على وجود مشكلة ما يجب حلها في موقعك.

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


ماذا يعني رمز استجابة HTTP 302

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

جميع الرموز التي تبدأ بالرقم 3 هي رموز تشير لوجود عملية إعادة توجيه، والرمز 302 يدل على أن عملية إعادة التوجيه هذه مؤقتة أي عند زيارتك للموقع domain.com ستتم إعادة توجيهك مثلًأ للموقع dev.domain.com بشكل مؤقت.

يختلف  HTTP 302 عن HTTP 301 بأن عملية النقل في  حال إعادة توجيه 301 تعني النقل الدائم لعناوين URL  302 ويتم استخدامه عند نقل الصفحات أو نقل المواقع بشكل نهائي، في حين أن إعادة التوجيه 302 هي عملية تتم بشكل مؤقت نتيجة حالة طارئة، ولكنها تستمر ما لم تقم بإلغاء إعدادها بشكل يدوي بعد انتهاء المدة المؤقتة. 

على سبيل المثال، إذا كنت تنوي إنشاء صفحة جديدة في موقعك ولكنك لم تقم بذلك بعد، وتريد نقل الزوار مؤقتًا إلى صفحة بعنوان (قيد الإنشاء) ريثما تنتهي الصفحة فاستخدم عندها  إعادة توجيه 302.

لكن ما المقصود بأن عملية التوجيه هذه مؤقتة، ومتى يُصبح هذا الرمز خطأ يجب إصلاحه؟ 

تستخدم عمليات التوجيه المؤقتة عادة بشكل طبيعي على كافة الصفحات أو النطاقات التي تحتاج لصيانة أو إجراء تغييرات سواء في التصميم أو الوظيفة. وبما أن إعادة التوجيه 302 هي عملية نقل مؤقت لعنوان URL فبالتالي لا يفضل أن تتجاوز مدة النقل باستخدامه أسبوع إلى أسبوعين.

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

لكن تتحول عملية إعادة التوجيه 302 إلى خطأ في الحالات التالية: 

  • عندما تكون ناتجة عن تغيير ضمن الموقع لكنك لا تقصد به إعادة التوجيه هذه.
  • عند إعادة التوجيه إلى عنوان خاطئ غير موجود.
  • عند الوقوع في حلقة من طلبات إعادة التوجيه HTTP 302 التي تمنع زوار الموقع من الوصول للمحتوى سواء على النطاق القديم أو المؤقت.
  • الحالة الأخيرة هي الحالة الوحيدة التي تظهر فيها رسالة خطأ صريحة ضمن المتصفح حيث توضح الصورة التالية رسالة الخطأ ضمن متصفح جوجل كروم.

أما في متصفح فايرفوكس فتكون على الشكل التالي.


طرق إصلاح الخطأ HTTP 302 في موقع ووردبريس

يمكن أن ينتج هذا الخطأ في مواقع الووردبريس عن أسباب عدة، وتستطيع  بالاعتماد عليها اختيار طريقة الإصلاح المناسبة لك. يمكن أن يكون السبب تحديث في أحد الإضافات، أو عدم توافق بين الإضافات، أو خطأ بإعدادات ملف .htaccess في حال كنت تستخدم خادم Apache، أو ربما خطأ بإعدادات ملف nginx.conf في حال كنت تستخدم خادم NGINX.

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

1-تعطيل كافة إضافات ووردبريس

يحتمل أن تكون أحد الإضافات التي قمت بتثبيتها مؤخرًا، أو أحد التحديثات التي تلقتها إحدى الإضافات هي سبب هذا الخطأ، وللتأكد عليك تعطيل جميع الإضافات في موقعك، ومعاودة زيارة الرابط الذي يظهر ضمنه الخطأ HTTP 302. 

توجه إلى إضافات< إضافات منصبة< ثم اختر جميع الإضافات وعطلها كما هو موضح في الصورة التالية.

ملاحظة: إن كنت لا تستطيع الوصول للوحة تحكم الموقع بسبب إعادة التوجيه الناتجة عن هذا الخطأ، عندها تستطيع الوصول لملفات موقعك من خلال مدير الملفات في لوحة تحكم الاستضافة cPanel، أو من خلال بروتوكول FTP، حيث تستطيع تعطيل الإضافات بسهولة من خلال تغيير اسم مجلد الإضافات plugins إلى اسم آخر مثل plugins_old.

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

2- تحقق من إعدادات روابط ووردبريس

أحد الأسباب الشائعة لظهور الخطأ HTTP 302 في ووردبريس هي الضبط الخاطئ لرابطي عنوان ووردبريس وعنوان الموقع للتحقق من إعداد عملية الربط بالشكل الصحيح قم بما يلي. 

1-ضمن لوحة تحكم ووردبريس توجه إلى التبويب إعدادات < عام من القائمة الفرعية.

2-تحقق من كتابة حقلي عنوان ووردبريس URL، وعنوان الموقع URL  بالشكل الصحيح كما هو موضح في الصورة المتحركة التالية:

3-التحقق من إعدادات الخادم

يمكن أن يظهر هذا الخطأ بسبب ضبط خاطئ لإعدادات الخادم، وفيما يلي سنستعرض لك طريقة حل الخطأ HTTP 302 على أشهر أنواع الخوادم وهما خادم Apache وخادم NGINX  (ويمكن بأسلوب مشابه تطبيق الخطوات على أي خادم آخر).

خادم Apache

يمكنك التحكم بخادم Apache من خلال الإعدادات الموجودة ضمن ملف .htaccess لذا عليك مراجعة محتوى هذا الملف والقيام بالخطوات التالية.

1- عليك فتح ملف .htaccess الموجود على الخادم ضمن المجلد الرئيسي للموقع (يختلف هذا المسار حسب نوع الاستضافة ولوحة التحكم المستخدمة).
إن كنت تستخدم لوحة التحكم cPanel سوف تجد هذا الملف ضمن المجلد public_html بالنسبة للموقع الرئيسي. أما بالنسبة للمواقع الأخرى المستضافة ضمن نفس الاستضافة سوف تجد هذا الملف ضمن مجلدات باسم الموقع المطلوب داخل أو خارج المجلد public_html.

2- ابحث عن التوجيهات RewriteXXX التابعة لوحدة mod_rewrite ضمن خادم Apache، وعلى سبيل المثال فإن RewriteCond يتضمن الرابط الذي تريد توجيه الزيارات الواردة له لرابط آخر، باستخدام التوجيه RewriteRule الذي يرتبط مع توجيه RewriteCond واحد أو أكثر.
يعد المثال التالي مثالًا بسيطًا عن طريقة استخدام التوجيهين السابقين معًا، حيث يعاد توجيه الزيارات الواردة للرابط example.com مؤقتًا إلى الرابط temporary-example.coM من خلال الكود التالي:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*)$ HTTP://www.temporary-example.com/$1 [R=302]

لاحظ الجزء الأخير من التوجيه RewriteRule في المثال السابق الذي يوضح أن رمز الاستجابة يجب أن يكون 302 ليخبر المتصفح بذلك أن عملية إعادة التوجيه هذه مؤقتة.

3- عليك الآن إعادة ضبط التوجيهات من جديد ضمن ملف .htaccess ولأجل ذلك عليك المقارنة مع القيم الافتراضية التي توجد عادةً ضمن هذا الملف وهي كالتالي.

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

إن وجدت أي توجيه مختلف عن المثال السابق تستطيع وضع إشارة # قبله لإبطال مفعوله، ثم أعد تشغيل الخادم  وتأكد بعدها إن حُلّت المشكلة أم لا.

خادم NGINX

يمكنك التحكم بخادم NGINX من خلال الإعدادات الموجودة ضمن ملف nginx.conf لذا عليك مراجعة محتواه والقيام بالخطوات التالية.

1- عليك فتح ملف nginx.conf الذي يوجد عادةً ضمن أحد المسارات التالية /usr/local/nginx/conf أو /etc/nginx أو /usr/local/etc/nginx.

2- ابحث عن توجيهات الروابط، والمثال التالي هو مجموعة من التوجيهات التي تعيد توجيه الزوار مؤقتًا من الرابط abc.com إلى temporary-abc.com.

server {
listen 80;
listen 443 ssl;
server_name www.abc.com;
rewrite ^/$ http://www.temporary-abc.com redirect;
}

إن توجيهات rewrite ضمن خادم nginx يقابلها توجيهات RewriteRule وRewriteCond ضمن خادم Apache

3- تخلص من التوجيهات rewrite باستخدام إشارة # قبلها، ثم أعد تشغيل الخادم وتأكد إن كانت هذه الخطوة حلت المشكلة أم لا، وفي حال حُلّت المشكلة فإن سببها هو أحد التوجيهات السابقة.

4-تواصل مع فريق الدعم الخاص باستضافة موقعك

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

لأن معرفة السبب الفعلي لوقوع هذا الخطأ وإصلاحه في بعض الحالات يتطلب معرفة  وخبرة فنية كبيرة. لذلك من الأفضل أن تحصل على مساعدة من خبراء استضافتك.

خاتمة

في مقال اليوم شرحنا بالتفصيل أكواد استجابة HTTP 302  التي تعد عادة  أكواد طبيعية جدًا، وبينا أنها طريقة بسيطة لإعادة توجيه زوار موقعك مؤقتًا لموقع آخر، لكن عليك استخدامها فقط عندما تكون موارد الصفحة المطلوبة من قبل الزوار غير متوفرة.

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