site-down

كيف تتعامل مع توقف الموقع بسبب الاختراق او الصيانة



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

كيف تعاملنا مع توقف الموقع بسبب الاختراق وماذا أخبرنا محركات البحث والزوار. 

الموقع المطلوب مغلق للصيانة

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

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

قبل الدخول بالطريقة التي سنعتمد عليها يجب التحدث عن الأخطاء الشائعة التي يقوم بها أصحاب المواقع غالباً في الحالات المماثلة : 

[highlight color=”orange”]الخطأ الأول : إختفاء / حذف جميع الملفات عن السيرفر[/highlight]

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

404 لم يتم العثور على الملف المطلوب

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

 

[highlight color=”green”]الخطأ الثاني :الإكتفاء بترك رسالة أن الموقع قيد الصيانة[/highlight]

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

حسناً، الرسالة التي تم وضعها ستظهر للزائر وسيعرف الزائر أن هذا الموقع يعمل على حل المشكلة وسيعود في وقت لاحق للتحقق من حلها، لكن تبقى المشكلة محركات البحث !!

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

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

 

قبل الدخول بالحل تعالو معي لنتعرف بشكل سريع على أهم أكواد حالات HTTP  التي يرسلها السيرفر للمتصفح: 

في كل مرة يقوم الزائر او محرك البحث بالدخول إلى موقعك يتم ارسال إشارات من السيرفر إلى المتصفح عن حالة الصفحة المطلوبة وتسمى هذه الاشارات HTTP Status code وتكون بالشكل التالي:

 

200 يعمل : عندما يقوم السيرفر بإرسال الكود 200 فهذا يعني أنه قد تم ارسال الاستعلام بنجاح وان الصفحة التي تم طلبها موجودة وتعمل.

301 تم نقله نهائياً : تحدثنا في مقالات سابقة عن أهمية استخدام كود تحويل 301 في عملية نقل الموقع، ومنه نستنج ان 301 يفيد محركات البحث بمعرفة ان هذا الموقع/الرابط قد تم نقله نهائياً ولن يتواجد على نفس الرابط مرة أخرى ويفيد الزائر بتحويله مباشرة للرابط الجديد.

302 تم نقله مؤقتاً : التحويل 302 يعمل عمل التحويل 301 إلى انه يخبر محركات البحث ان هذا التحويل سيكون مؤقتاً ولمدة معينة ومن ثم سيعود نفس الرابط للعمل.

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

503 الخدمة متوقفة مؤقتاً : يفيد كود الخطأ 503 بإخبار محركات البحث بأن الصفحة المطلوبة غير متوفرة مؤقتاً وستعود للعمل خلال مدة يتم تعينها من قبل مدير الموقع او مدير السيرفر.

لمعرفة المزيد حول HTTP status codes.

 

[highlight color=”pink”]كيف تُخبر محركات البحث أن موقعك قيد التحديث[/highlight]

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

503 HTTP

 

 

 

كما نلاحظ في الكود أول سطرين يخبران محركات البحث أن هذا الموقع غير متوفر حالياً، أما السطر الثالث رقم 4 في الكود يخبر محرك البحث بالوقت الذي سيعود به للعمل.

ويمكن ان نختار صيغة الوقت بالشكل التالي مع مراعاة ان التوقيت المدعوم في هذه الممارسة هو غرينتش لذلك عليك الانتباه لفرق الساعات بينك وبينهم.

503 Time

 

 

حسناً، هذا ليس كل شيء هذه الخطوة ليست كافية لمنع صفحات الخطأ تابع،

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

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

قم بحفظ الـ 6 أسطر التالية داخل ملف .htaccess وقم برفع الملف إلى المجلد الرئيسي لموقعك :

إعادة التحويل لصفحة الخطأ

 

 

 

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

لذلك نلاحظ أنه واثناء قيامنا بعمل تحويل 301 نستخدم القيمة [R=301, L] .

الأمر الذكي في استخدام هذا الكود أنك ستتمكن من دخول موقعك بينما الجميع يتم تحويلهم لصفحة الخطأ، كيف ذلك ؟، لنفرض لديك هوية / IP ثابتة على الانترنت، فعندما تقوم بوضعها في السطر الرابع ( تقوم باستبدال الرقم 0 برقم IP الخاص بك ) ستتمكن أن وحدك من الدخول والعمل على الموقع فيما باقي الزوار ومحركات البحث يتم توجيههم إلى الخطأ 503.

إلى هنا نكون قد انتهينا من إخبار محركات البحث أن موقعك قيد التحديث. كلام جميل ومريح.

لكن

[highlight color=”gray”]كيف تخبر زوار موقعك أن موقعك قيد التحديث[/highlight]

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

الموقع غير متوفر حالياً

[box type=”success” align=”alignright” class=”” width=””]نحاول نشر الفائدة مع كل مقال نقوم بكتابته، ونبتعد عن أي اساليب تجبر الزائر على مشاركة المحتوى، نحن نعول عليك في ايصال هذه المعلومات لأكبر قدر ممكن من الأشخاص فقد يكون هناك شخص ما بحاجة لها، ساعدنا في نشر العلم على أوسع نطاق.[/box]