501 Not Implemented: الخادم لا يستطيع فعل ذلك
501 Not Implemented يعني أن الخادم لا يدعم الوظيفة التي يحتاجها الطلب، وغالبًا طريقة طلب غير معروفة له.
501 Not Implemented يعني أن الخادم لا يدعم الوظيفة اللازمة لمعالجة الطلب؛ وفي أغلب الحالات لا يتعرف على طريقة الطلب أصلًا. هو «لا أستطيع فعل ذلك» على مستوى الخادم كله، وليس حكمًا على رابط بعينه.
التعريف
يقول RFC 9110، القسم 15.6.2 إن 501 هو الرد المناسب عندما لا يتعرف الخادم على طريقة الطلب ولا يستطيع دعمها لأي مورد. وهذا هو الفرق الجوهري عن 405 Method Not Allowed: الرمز 405 يعني «طريقة معروفة لكنها غير مسموحة هنا»، بينما يعني 501 «لا أدعم هذه الطريقة في أي مكان». كما تشير قواعد الرسائل في HTTP/1.1 (RFC 9112) إلى 501 عندما يتلقى الخادم ترميز نقل (transfer coding) لا يفهمه. والرد 501 قابل للتخزين المؤقت افتراضيًا.
الأسباب الشائعة
- طرق غير قياسية مثل
PURGEأوBAN، تستخدمها ذواكر مثل Varnish، وتصل إلى خادم لا يعرفها. ويرد Apache على الطرق المجهولة بـ «Method Not Implemented». - طلبات WebDAV أو PATCH إلى خوادم أو بروكسيات لا تدعمها.
- نقاط مؤقتة (placeholder) في API تعيد 501 إلى أن تصدر الميزة.
- قيم Transfer-Encoding غير مدعومة في الطلب.
التأثير على السيو
يستخدم Googlebot الطريقة GET التي يدعمها كل خادم، لذا فإن 501 على صفحة يعني عادةً أن توجيهًا ما خاطئ بشدة: تطبيق وهمي أو مضيف افتراضي (virtual host) خاطئ أو بروكسي في الطريق. وتضع Google الرمز 501 مع بقية رموز 5xx مثل 500، فيتباطأ الزحف وتُسقط في النهاية الروابط التي تواصل الفشل (وثائق Google). لا تستخدم 501 أبدًا كحالة «قريبًا» للصفحات العامة. فالصفحة غير الجاهزة لا ينبغي أن يُشار إليها برابط، أو ينبغي أن تعيد 404 إلى أن تصير جاهزة.
كيف تصلحه
- في مسح ذاكرة التخزين المؤقت (purge)، أرسل الطلب إلى طبقة التخزين المؤقت (Varnish أو واجهة CDN)، لا إلى الخادم الأصلي، أو أضف معالجًا لهذه الطريقة.
- في واجهات API، أعد 405 مع ترويسة
Allowعندما تكون الطريقة معروفة لكنها غير مدعومة في تلك النقطة، وأبقِ 501 للطرق التي لا تنفذها إطلاقًا. - راجع قواعد البروكسي العكسي إذا ظهر 501 فقط عندما تمر الطلبات عبر البروكسي.
مثال
PURGE /blog/ HTTP/1.1
Host: www.example.com
HTTP/1.1 501 Not Implemented
Server: Apache
Content-Type: text/html; charset=iso-8859-1
تأكد مما تعيده طلبات الصفحات العادية بـ أداة فحص حالة HTTP.
الأسئلة الشائعة
ما الفرق بين 501 و405؟
الرمز 405 يعني أن الخادم يعرف الطريقة لكن هذا الرابط لا يسمح بها، ويجب أن يسرد الطرق المسموحة في ترويسة Allow. والرمز 501 يعني أن الخادم لا يدعم الطريقة لأي رابط.
لماذا يعيد طلب PURGE الرمز 501؟
لأن الطلب وصل إلى خادم لا يعرف الطريقة PURGE، وغالبًا الخادم الأصلي لا طبقة التخزين المؤقت. أرسل طلبات المسح إلى ذاكرتك المؤقتة أو CDN، أو اضبط الخادم الأصلي ليعالجها.
هل يؤثر الخطأ 501 على السيو؟
نعم، إذا تلقته الزواحف على الصفحات. تعامل Google الرمز 501 كأخطاء الخادم الأخرى: تزحف أقل وتزيل في النهاية الروابط التي تواصل الفشل.