حلقات إعادة التوجيه

ما حلقات إعادة التوجيه، ولماذا تعطل الموقع أمام المستخدمين والزواحف، وأسبابها الشائعة مثل تعارض HTTPS/وضع SSL وwww/non-www والإضافات مع الخادم وأخطاء الشرطة المائلة، وكيفية تشخيصها وإصلاحها بحسب السبب.

نُشر أول مرة: 2 يوليو 2026 · آخر تحديث: 14 أغسطس 2026 · Advanced
اللغات
دليل واحد في هذه الصفحة

حلقة إعادة التوجيه سلسلة تدور على نفسها — A → B → A أو دورة أطول — فلا تصل إلى استجابة نهائية ولا تعيد 200. يعرضها المتصفح كـERR_TOO_MANY_REDIRECTS، وهي أحد أربعة أسباب موثقة لحالة Redirect error في Google Search Console. إنها انقطاع للموقع أولًا ومشكلة SEO ثانيًا، وتضر المستخدمين والزواحف والخادم. ومن أسبابها الموثقة تعارض وضع HTTPS/SSL بين CDN والأصل، مثل Cloudflare Flexible مع أصل يفرض HTTPS، إضافة إلى تعارض www/non-www والإضافات مع قواعد الخادم وأخطاء الشرطة المائلة؛ ولا يوجد سبب عالمي واحد هو الأكثر شيوعًا. لا يصلحها رفع حد القفزات. يجب كسر الدورة، وجعل الوجهة النهائية تعيد الاستجابة الصحيحة غير المعيدة للتوجيه، وتحديث الروابط الداخلية.

الخلاصة — حلقة إعادة التوجيه دورة (A → B → A أو أطول) لا تعيد 200 قط، ولذلك لا تُحل. وهي تختلف جذريًا عن السلسلة الطويلة: السلسلة بطيئة، والحلقة معطلة؛ لذا لا يصلحها رفع حد القفزات. تظهر كـERR_TOO_MANY_REDIRECTS في المتصفح وكأحد أربعة أسباب موثقة لحالة «Redirect error» في Search Console. وتضر ثلاثة أطراف: المستخدمين المحجوبين، وبرامج الزحف العالقة، وخادمك الذي يهدر الموارد وقد يتعرض لحمل شديد بحسب الزيارات وتراجع العملاء وحدود السعة والمعدل. ومن أسبابها الموثقة جيدًا تعارض وضع HTTPS/SSL بين CDN/الوكيل والخادم الأصلي؛ وتشمل الأسباب الأخرى تعارض www/non-www، وقاعدة إضافة تواجه قاعدة خادم، وأخطاء الشرطة المائلة. ولا يوجد سبب واحد هو الأكثر شيوعًا في كل المواقع. والإصلاح خاص بالسبب دائمًا.

الحلقة دورة، لا سلسلة طويلة

الخاصية الفارقة هي المسار الدوري، لا عدد معين من القفزات. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: RFC 9110: Redirection يصف وسم Search Console مسار إعادة التوجيه الفاشل، لا طبقة الإعداد التي أنشأته. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: Google: Page indexing report اعتبر تكرار العنوان مؤشر تتبع قويًا لا دليلًا تلقائيًا؛ فقد تختلف حالة الطلب، مثل المصادقة أو الموافقة أو اللغة أو ملفات الارتباط أو الرؤوس، بين الزيارات. أكد الحلقة بإعادة إنتاج الانتقال الدوري تحت حالة طلب مكافئة قبل أن تسميها حلقة وتعدل القاعدة.

هذا الفرق يفسر كل ما بعده. أعرّفها في دليلي عن إعادات التوجيه في Ahrefs بأنها حلقات لا نهائية تحدث عندما يعيد عنوان URL التوجيه إلى نفسه، أو عندما يعيد عنوان ضمن سلسلة التوجيه إلى عنوان سابق فيها.

سلسلة إعادة التوجيه (A → B → C → D → النهائية) مسار أطول مما ينبغي، لكنه يصل في النهاية إلى صفحة تعيد 200. هي بطيئة وتستحق الاختصار، لكنها تُحل.

أما الحلقة فدائرة A → B → A لا تصل إلى 200 مهما طال تتبعها. لذلك لا يصلحها «ارفع حد إعادة التوجيه». فهي لا تفشل لنفاد صبر المتصفح، بل لعدم وجود وجهة يمكن بلوغها. يجب كسر الدورة لا متابعة قفزات أكثر.

كيف تظهر الحلقة؟

في المتصفح. يعرض Chrome ERR_TOO_MANY_REDIRECTS، وتقول Firefox «الصفحة لا تعيد التوجيه بصورة صحيحة»، وتعرض Safari وEdge صيغًا من «إعادات توجيه كثيرة جدًا». السبب واحد والصياغة مختلفة.

في Google Search Console. الحلقة أحد أربعة أسباب موثقة لحالة «Redirect error» في تقرير فهرسة الصفحات؛ والثلاثة الأخرى سلسلة طويلة جدًا، أو عنوان إعادة توجيه تجاوز الحد الأقصى لطول URL، أو عنوان سيئ/فارغ في السلسلة. يعكس التقرير ما رأته Google في آخر زحف، لا حكمًا حيًا دائم التحديث؛ لذا أعد الفحص عبر URL Inspection بعد الإصلاح ولا تفترض تحديث التقرير فورًا. ولحالة الخطأ مقال مستقل يغطي الأسباب الأربعة، بينما يختص هذا المقال بالحلقة.

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

لماذا تهم الحلقات؟ تتضرر ثلاثة أطراف

أصف الحلقات كمشكلة ثلاثية لأنها لا تؤثر في الترتيب وحده، بل في المستخدمين والروبوتات والبنية التحتية:

  • المستخدمون: تمنعهم من المورد المقصود وتعرض خطأ «إعادات توجيه كثيرة جدًا»؛ فالصفحة غير قابلة للوصول، وهذه مشكلة انقطاع أولًا.
  • الروبوتات ومحركات البحث: تحاصر برامج الزحف وتهدر ميزانية الزحف. لا يستطيع الزاحف الوصول إلى شيء قابل للفهرسة، وتبلغ وثائق Google عنه كـ«Redirect error». ليست عقوبة؛ فالصفحة لا يمكن بلوغها عمليًا، ولا ينطبق تجميع الإشارات لأن Google لا تصل إلى وجهة.
  • خادمك: تهدر الحلقات موارده. تتراجع بعض الروبوتات ولا تتراجع أخرى، ويضيف العميل الذي يعيد الطلب بلا توقف حملًا مستمرًا مهدورًا. ويتوقف تحوله إلى انقطاع شديد أو حدث شبيه بـDDoS ذاتي على حجم الزيارات وقابلية التخزين المؤقت وسعة الخادم وحدود المعدل؛ وليس خاصية ملازمة لكل حلقة، لكنه خطر حقيقي في المواقع كثيرة الزيارات أو الزحف بلا حماية للمعدل.

الأسباب الشائعة

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

تعارض HTTP/HTTPS بين CDN والخادم الأصلي

عند وضع وكيل/CDN مثل Cloudflare أمام الموقع، للاتصال مرحلتان: المتصفح → CDN، ثم CDN → الخادم الأصلي. إذا اختلفتا بشأن HTTP وHTTPS نشأت حلقة عند هذه الحدود. تسمي وثيقة Cloudflare نفسها هذه العائلة: وضع SSL/TLS Encryption سيئ الإعداد، أو إعدادات متعارضة في Edge Certificates، أو قاعدة إعادة توجيه خاطئة؛ وهي شائعة داخل منتج Cloudflare، لا بالضرورة السبب الأشيع عالميًا. ومن فروعها:

  • وضع Flexible مع فرض HTTPS في الأصل. يتصل Cloudflare بالأصل عبر HTTP في وضع Flexible رغم استخدام الزائر HTTPS. إذا فرض الأصل HTTP → HTTPS عبر .htaccess أو nginx أو إضافة، أعاد الطلب إلى HTTPS ثم أرسله Cloudflare عبر HTTP من جديد. الإصلاح: استخدم Full أو Full (strict) ليكون اتصال CDN→الأصل عبر HTTPS أيضًا؛ ويتطلب Full (strict) شهادة صالحة في الأصل.
  • وضع Full/Full (strict) مع تحويل الأصل HTTPS → HTTP. إذا بقيت قاعدة قديمة تعيد HTTPS إلى HTTP، يطلب CDN عبر HTTPS ويعيده الأصل إلى HTTP. الإصلاح: احذف قاعدة HTTPS→HTTP وليخدم الأصل HTTPS مباشرةً.
  • Always Use HTTPS عند الحافة مع تحويل HTTPS في الأصل. قد ينشئ فرض HTTPS في موضعين، أو تعارض HSTS مع قاعدة، الحلقة نفسها. الإصلاح: اختر موضعًا واحدًا.
  • قاعدة إعادة توجيه خاطئة من Page Rule أو Bulk Redirect أو Transform Rule تعيد العنوان إلى صيغة غادرها. الإصلاح: راجع قواعد الحافة المخالفة لتوحيد الأصل.

قواعد www وnon-www تعيد إلى بعضها

تريد مضيفًا أساسيًا واحدًا: www.example.com أو example.com. تنشأ الحلقة حين ترسل قاعدة example.com إلى www.example.com وتعيد قاعدة أخرى، ربما في إضافة أو CDN أو إعداد Site Address في WordPress، الاتجاه العكسي. الإصلاح: اختر مضيفًا واحدًا واجعل قاعدة واحدة في موضع واحد تفرضه.

تعارض قاعدة إضافة/CDN مع قاعدة خادم/أصل

موضوع الأسباب السابق أن الحلقة تعيش بين الطبقات. قد تخالف إضافة WordPress لفرض SSL أو حقلا WordPress Address وSite Address في Settings → General قاعدة .htaccess أو قاعدة CDN. تبدو كل طبقة صحيحة منفردة لكنها لا تتشارك الحالة. لذلك لا تثبت سلامة .htaccess غياب الحلقة. الإصلاح: اعثر على القاعدتين اللتين تؤديان المهمة نفسها في موضعين واحذف واحدة.

أخطاء منطق الشرطة المائلة النهائية

قد تتعارض قاعدة تضيف الشرطة (/page/page/) مع أخرى تحذفها (/page//page) فتنتج حلقة. الإصلاح: اختر صيغة واحدة واجعل القاعدة تحول الصيغة الخاطئة إلى الصحيحة فقط، من دون أن تعيد الصحيحة إلى الخاطئة.

قواعد قديمة متراكمة من عملية نقل سابقة

عمليات النقل مصدر واقعي شائع للحلقات؛ إذ تضيف عمليات HTTP → HTTPS وتوحيد www وتغيير النطاق والمنصة قواعد جديدة فوق قديمة لم تُنظف، وقد تنتهي قاعدتان بالإشارة إحداهما إلى الأخرى. إذا ظهرت الحلقة «فجأة»، فافحص بقايا قواعد النقل.

كيفية تشخيص الحلقة

ينبغي أن ترى الحلقة لا أن تخمنها.

تتبعها من سطر الأوامر بطلب GET فعلي، لا بتتبع HEAD وحده. أرسل نوع الطلب الذي يرسله زائر أو زاحف حقيقي، وسجّل كل كود حالة ورأس Location من دون السماح لـcurl بالمتابعة التلقائية أولًا، لترى كل قفزة لا النتيجة الأخيرة وحدها:

# GET is curl's default method (no -I); -L follows redirects; --max-redirs caps how far
curl -sL --max-redirs 10 -D - -o /dev/null https://www.example.com/ | grep -i -E '^(HTTP/|location:)'
# A loop shows the same two (or few) URLs alternating and never a 200 —
# curl stops with "Maximum (10) redirects followed".

لرؤية عنوان URL الفعلي في كل محطة:

curl -sL --max-redirs 10 -o /dev/null -w '%{http_code} %{url_effective}\n' https://www.example.com/

ثم قارنه بتتبع HEAD فقط (curl -sIL --max-redirs 10 ...) كفحص ثانوي لا دليل أساسي؛ فـHEAD وGET طريقتان مختلفتان وقد يعالجهما التطبيق بصورة مختلفة، فيفوّت تتبع HEAD سلوكًا يظهر مع الطلب الحقيقي. ولا تعِد إرسال طرق غير آمنة مثل POST نموذج لمجرد تتبع الحلقة.

إذا تكرر زوج المضيف/المخطط ولم تر 200 فهذه الحلقة، ويكشف تناوب العنوانين قاعدة التوحيد المتعارضة: المخطط يعني HTTP/HTTPS، والمضيف يعني www/non-www، والشرطة تعني خلل الشرطة. ثم انسب كل قفزة إلى طبقتها: المتصفح/HSTS، أو الحافة/TLS، أو الوكيل العكسي، أو الأصل، أو التطبيق/CMS، أو الجلسة/المصادقة؛ فالحلقة تقع عندما لا تتشارك طبقتان الحالة وتصر كل منهما على رأيها.

مداخل أخرى:

  • أدوات المطور في المتصفح → Network. راقب تراكم الطلبات ورأس Location.
  • اختبر مع CDN ومن دونه. إذا أمكن الوصول إلى الأصل مباشرةً ولم يدر، فالتعارض بين CDN والأصل، وهذا يوجهك إلى وضع SSL.
  • Google Search Console. يبين URL Inspection وتقرير Page Indexing العناوين التي تتعثر فيها Google. تنص الوثائق على أن Inspection Tools لا تتبع إعادات التوجيه؛ فاقرأ النتيجة كتقرير عن العنوان المختبر لا عما بعد الحلقة.
  • زاحف للموقع كله مثل Ahrefs Site Audit أو Screaming Frog يكتشف الحلقات المجهولة. في Ahrefs: ازحف الموقع → Redirects → Issues → خطأ «Redirect loop» → View affected URLs لرؤية المسار الكامل.

كيفية إصلاح الحلقة

بعد معرفة السبب، يكون القرار البنيوي واحدًا. يعتمد أفضل إصلاح على كون آخر عنوان قبل انغلاق الحلقة هو الوجهة النهائية المقصودة:

  • إذا كان الوجهة المقصودة: احذف إعادة التوجيه من ذلك العنوان، وتأكد أن المورد متاح ويعيد الاستجابة الصحيحة غير المعيدة للتوجيه، وعادةً 200، مع مراعاة أن المورد المحذوف يجب أن يعيد حالته الصحيحة لا 200 زائفة.
  • إن لم يكن: غيّر إعادة التوجيه الدائرة لتشير إلى الوجهة النهائية المقصودة.

في الحالتين استبدل الروابط الداخلية التي تشير إلى عنوان يعيد التوجيه بروابط مباشرة إلى العنوان النهائي، ولا تواصل تغذية المنظومة بعناوين معيدة للتوجيه.

إصلاحات خاصة بالمنصات:

  • Cloudflare بحسب وضع SSL: انتقل من Flexible إلى Full أو Full (strict) ليتطابق اتصال CDN→الأصل مع المتصفح→CDN، ولا تفرض HTTPS عند الحافة والأصل معًا. يتطلب Full (strict) شهادة صالحة في الأصل.
  • WordPress: راجع Settings → General؛ يجب أن يطابق WordPress Address (URL) وSite Address (URL) المخطط/المضيف الأساسيين. ثم ابحث عن إضافة لفرض SSL أو FORCE_SSL_ADMIN أو مقتطف إعادة توجيه في wp-config.php أو القالب يكرر عمل الخادم/CDN واحذف التكرار. وقد تصلح إعادة توليد .htaccess من Settings → Permalinks تلفه.
  • Apache (.htaccess): اجعل لشروط RewriteRule الخاصة بـHTTPS وwww استثناءً للصيغة الصحيحة أصلًا، كي تحول الخاطئة مرة واحدة.
  • nginx: المبدأ نفسه؛ يجب ألا تعمل return 301 على طلب في الصيغة الأساسية.

ملاحظة عن حدود القفزات: خرافة يجب تجنبها

لأن الحلقة تبدو «إعادات توجيه كثيرة جدًا»، يلجأ البعض إلى رفع max-redirs أو حد الإضافة. لا يصلح ذلك حلقة حقيقية. فالحلقة ليست مسألة عدد قفزات مثل السلسلة؛ بل تفشل لأن الدورة لا تنتهي. والإصلاح الوحيد هو كسرها.

ملاحظة عن Bing

تسمي Google «حلقة إعادة التوجيه» رسميًا أحد أربعة أسباب لـ«Redirect error» في وثائق فهرسة الصفحات. أما إرشاد Bing العام فيوصي بـ301 للنقل الدائم وتجنب السلاسل غير الضرورية. لم يكشف هذا البحث صفحة Bing باسم «redirect loop»، لكن ذلك فجوة في نطاق الفحص لا إثبات لغياب الإرشاد؛ لذا تعامل مع إطار الأسباب الأربعة كخاص بـGoogle.

مفاهيم مرتبطة

سلسلة إعادة التوجيه مشكلة شقيقة؛ فالسلسلة الطويلة سبب آخر من أسباب «Redirect error»، وهي تُحل بخلاف الحلقة. و301 إعادة التوجيه الدائمة التي تختصر الحلقة إليها عادةً، و302 نظيرتها المؤقتة. وتظهر الحلقة لأغراض SEO غالبًا في حالة redirect error في Search Console.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.