إعادة التوجيه المؤقتة 307

ما هي إعادة التوجيه المؤقتة 307، وكيف تحفظ طريقة HTTP بخلاف 302، وأين تظهر (HSTS والانتقالات المؤقتة)، وكيف تتعامل معها Google في SEO.

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

تعني إعادة التوجيه المؤقتة 307 لدى Google الشيء نفسه الذي تعنيه 302 — إشارة مؤقتة ضعيفة لا تنقل ترتيب العنوان الأصلي إلى الهدف — لذلك لا يوجد سبب ترتيبي لتفضيل إحداهما. والفرق الحقيقي الوحيد عن 302 هو ضمان في المواصفة: يجب ألا تغير 307 طريقة الطلب أو الجسم، فيبقى POST هو POST. يهم ذلك النماذج وAPIs وأطر العمل الحديثة (فـNext.js يجعل 307 افتراضية)، ولا يهم إعادة توجيه صفحات GET العادية. أما 307 التي تربك معظم الناس فليست إعادة توجيه أصلًا: إنها أثر المتصفح الذي ينتجه HSTS عند ترقية http إلى https، بجسم حجمه 0 بايت لم يرسله الخادم — وتُظهر أداة فحص إعادة التوجيه أو طلب curl عادي (لا جلسة خاصة جديدة فقط، إذ لا تستطيع تجاوز نطاق موجود في قائمة HSTS المسبقة) رمز الحالة الحقيقي.

الخلاصة — إعادة التوجيه 307 مؤقتة، وتنص RFC 9110 على أنها «MUST NOT change the request method» (ترجمة) «يجب ألا تغيّر طريقة الطلب» — وهو الضمان الصارم الوحيد الذي لا تقدمه 302. أما في SEO فهي غير مؤثرة: تسرد وثائق Google 307 بوصفها «مكافئة لـ302» (إشارة مؤقتة ضعيفة)، وقال Mueller إن اختيار 307 مقابل 302 «لا يهم حقًا» للبحث — فالمسألة هي هل يجب أن تعمل إعادة التوجيه مع حركة POST/API. و307 التي تربك الناس فعلًا هي أثر HSTS: «إعادة توجيه» لا تظهر إلا في المتصفح، بحجم 0 بايت، ولم يرسلها الخادم، بل نتجت عندما رقّى المتصفح http إلى https بنفسه. ولها حالتان لا علاقة وظيفية بينهما، والفصل بينهما هو المهمة كلها.

حالتان مختلفتان تمامًا لـ307

هذه هي الفكرة المنظمة لكل ما يلي، وهي مأخوذة مباشرةً من دليلي لرموز الحالة، حيث توجد لـ307 إدراجان منفصلان: “307 Temporary Redirect – Has the same functionality as a 302 redirect, except you can’t switch between POST and GET” (ترجمة) «إعادة التوجيه المؤقتة 307 — تؤدي وظيفة 302 نفسها، لكن لا يمكن تبديل POST وGET» و*“307 HSTS Policy – Forces the client to use HTTPS when making requests instead of HTTP”* (ترجمة) «سياسة HSTS 307 — تفرض على العميل استخدام HTTPS عند الطلب بدل HTTP». يشتركان في الرقم ولا يكاد يجمعهما شيء آخر:

  1. 307 بوصفها إعادة توجيه مؤقتة حقيقية صادرة من الخادم — اختيرت عمدًا (أو جعلها إطار العمل افتراضية) للحفاظ على طريقة HTTP والجسم في طلب غير GET.
  2. 307 بوصفها أثرًا متصفحيًا لـHSTS — ليست استجابة خادم أصلًا. يرقّي المتصفح http إلى https داخليًا ويسمي هذه الترقية 307.

الخلط بين هاتين الحالتين هو المصدر الأكثر شيوعًا للارتباك حول 307. وسأعالجهما واحدةً تلو الأخرى.

الحالة الأولى: 307 الحقيقية — ما الذي تشترطه المواصفة؟

مواصفة RFC 9110 (مواصفة دلالات HTTP الحالية) واضحة بلا لبس في §15.4.8:

«The 307 (Temporary Redirect) status code indicates that the target resource resides temporarily under a different URI and the user agent MUST NOT change the request method if it performs an automatic redirection to that URI.» (ترجمة) «يشير رمز الحالة 307 (إعادة التوجيه المؤقتة) إلى أن المورد الهدف موجود مؤقتًا تحت URI مختلف، ولا يجوز لعميل المستخدم تغيير طريقة الطلب إذا نفذ إعادة توجيه تلقائية إلى ذلك URI.»

Evidence for this claim RFC 9110 defines 307 Temporary Redirect as a temporary move and requires clients not to change the request method when following it automatically. Scope: HTTP semantics for real server 307 responses, not browser-internal HSTS displays. Confidence: high · Verified: IETF: RFC 9110 §15.4.8 — 307 Temporary Redirect

عبارة «MUST NOT» متطلب صارم وليست اقتراحًا. قارنها بقسم 302 (§15.4.3)، الذي يوثق صراحةً الفوضى التاريخية التي أُنشئت 307 لإصلاحها: يوضح هذا القسم أن العميل قد يغيّر الطريقة من POST إلى GET لأسباب تاريخية؛ أما 307 فتُستخدم عندما يكون هذا التغيير غير مرغوب فيه. بعبارة أخرى، وُجدت 307 تحديدًا لإزالة غموض POST→GET الذي كانت تسببه العملاء الأقدم مع 302.

تذكر MDN النسخة العملية من الفرق نفسه:

«The difference between 307 and 302 is that 307 guarantees that the client will not change the request method and body when the redirected request is made. With 302, older clients incorrectly changed the method to GET. 307 and 302 responses are identical when the request method is GET(ترجمة) «الفرق بين 307 و302 أن 307 تضمن ألا يغير العميل طريقة الطلب والجسم عند إرسال الطلب المعاد توجيهه. ومع 302 غيّر العملاء الأقدم الطريقة خطأً إلى GET. وتكون استجابات 307 و302 متطابقة عندما تكون طريقة الطلب GET.»

تلك الجملة الأخيرة هي الأهم لـSEO. فكل إعادة توجيه تقريبًا يهتم بها صاحب موقع — من صفحة قديمة إلى صفحة جديدة — هي طلب GET، ومع طلبات GET تكون 307 و302 متطابقتين حرفيًا. ولا يظهر ضمان حفظ الطريقة إلا عندما لا تكون الطريقة GET: إعادة إرسال نموذج، أو نقطة API، أو هدف webhook، أو تسليم POST للدفع أو المصادقة. ما تضمنه المواصفة هو الطريقة والجسم — لكنها لا تحدد وحدها كيف يعالج كل عميل الرؤوس وبيانات الاعتماد والطلبات عبر أصل مختلف عند إعادة التشغيل، لذلك تحقق من عميلك الفعلي ولا تفترض تطابق البايتات. وإذا كنت تقارن الرمزين مباشرةً لنقل صفحة عادي، فهذه المقارنة مغطاة بتفصيل في مقال 302 مقابل 307 المخصص؛ ويفترض هذا المقال أنك تعرف أساس إعادة التوجيه المؤقتة من الغوص العميق في 302، ويركز على ما يخص 307 وحدها.

302 مقابل 303 مقابل 307 في جدول واحد

تندرج الرموز الثلاثة في فئة «المؤقتة» في RFC، لكنها لا تتصرف بالطريقة نفسها على المحورين المهمين فعلًا — حفظ الطريقة والتخزين المؤقت:

الرمزالطريقة عند إعادة التوجيه التلقائيةقابل للتخزين استدلاليًا؟
302 Foundقد يغير POST إلى GET (سلوك تاريخي للعميل؛ ليس متطلبًا في RFC)لا
303 See Otherيجلب الهدف عمدًا باستخدام GET أو HEADلا
307 Temporary Redirectيجب ألا يغير طريقة الطلبلا

لا يمكن تخزين أي من الرموز الثلاثة استدلاليًا افتراضيًا — فـ307 (مثل 302 و303) تحتاج إلى إشارة حداثة صريحة (Cache-Control وExpires وما شابه) قبل أن يخزنها cache من دون طلبها مجددًا.

الحالة الأولى، متابعة: كيف تتعامل Google مع 307 الحقيقية في SEO

النسخة المختصرة: تمامًا مثل 302. تسرد وثائق Google الخاصة بـرموز حالة HTTP صف 307 بوصفها «مكافئة لـ302»، ويشرح صف 302 الذي ترث منه ما يعنيه ذلك:

«By default, Google’s crawlers follow the redirect, and Google systems use the redirect as a weak signal that the redirect target should be processed.» (ترجمة) «افتراضيًا، تتبع برامج زحف Google إعادة التوجيه، وتستخدم أنظمة Google إعادة التوجيه إشارةً ضعيفة إلى أن هدفها ينبغي معالجته.»

كلمة «ضعيفة» هي الأساس — فإعادة التوجيه المؤقتة لا توحّد canonicalization على الهدف بالطريقة التي تفعلها الدائمة. وتجمع وثيقة إعادة التوجيه وبحث Google لدى Google رموز 302 و303 و307 تحت «المؤقتة» وتصف السلوك مباشرةً: «Googlebot follows the redirect, but the indexing pipeline doesn’t use the redirect as a signal that the redirect target should be canonical.» (ترجمة) «يتبع Googlebot إعادة التوجيه، لكن مسار الفهرسة لا يستخدمها إشارة إلى أن هدف إعادة التوجيه ينبغي أن يكون canonical». وفي الصفحة نفسها، الإطار المقصود واحد: «If you just want to send users to a different page temporarily, use a temporary redirect.» (ترجمة) «إذا كنت تريد فقط إرسال المستخدمين إلى صفحة مختلفة مؤقتًا، فاستخدم إعادة توجيه مؤقتة.»

Evidence for this claim Google's indexing pipeline does not use a temporary 302, 303, or 307 redirect as a signal that the redirect target should be canonical. Scope: redirect crawling, indexing, and canonicalization Confidence: high · Verified: Redirects and Google Search

مباشرةً بعد صفّي 307 و308، تضيف Google التحفظ الجدير بأن يُكتب على الجدار:

وتؤكد Google أن الرمزين متساويان في المعالجة، مع اختلافهما دلاليًا؛ لذلك ينبغي اختيار الرمز المناسب ليستفيد منه العملاء الآخرون.

إذًا تضع Google 307 و302 في فئة واحدة للترتيب، لكنها ما زالت تطلب اختيار الرمز الصحيح دلاليًا. هذه هي إجابة SEO كلها. Evidence for this claim Google treats 307 as equivalent to 302 for Search while noting that the HTTP semantics differ. Scope: Google Search redirect handling; clients still need the semantically appropriate status code. Confidence: high · Verified: Google: HTTP status codes and Search وعبّر John Mueller عن ذلك بصرامة أكبر في Search Off the Record الحلقة 51 («Let’s talk redirects»)، موضحًا أن «with 307, 308, it also forwards POST requests» (ترجمة) «مع 307 و308 تُمرر طلبات POST أيضًا» — بخلاف 301/302 التي تمرر طلبات GET — ثم وصل إلى النقطة الحاسمة:

وخلص Mueller إلى أن الاختيار لا يغيّر SEO؛ فالتمييز العملي يتعلق بعمل APIs، وهي عادةً لا تحتاج إلى فهرسة مباشرة في البحث.

لا توجد فائدة ترتيب من تحويل إعادة التوجيهات المؤقتة إلى 307. والسبب الصحيح الوحيد لاختيارها هو حفظ الطريقة/الجسم — أو تفضيل عام لتحصين المستقبل، وسأعود إلى ذلك في النهاية.

الحالة الأولى، متابعة: افتراضات أطر العمل وCDN

تتزايد أسئلة «لماذا هذه 307؟» التي لا تكون اختيارات متعمدة أصلًا — بل افتراضات أطر العمل. فالدالة redirect() في Next.js تجعل 307 افتراضية، وتشرح الوثائق السبب تحت عنوان حرفي «Why does redirect use 307 and 308?»: «The redirect() method uses a 307 by default, instead of a 302 temporary redirect, meaning your requests will always be preserved as POST requests.» (ترجمة) «تستخدم الدالة redirect() الرمز 307 افتراضيًا بدل إعادة التوجيه المؤقتة 302، ما يعني أن طلباتك ستُحفظ دائمًا بوصفها طلبات POST». (يستخدم Next.js الرمز 303 تحديدًا داخل Server Actions، ويوفر permanentRedirect() منفصلًا لحالة 308.) فإذا رأيت 307 لم تكتبها يدويًا، فتحقق هل يجعل إطارك أو منصة edge الرمز افتراضيًا لإعادة التوجيهات غير GET — فهذا هو الجواب عادةً، وغالبًا ما يكون صحيحًا.

الحالة الثانية: «307 الشبح» في HSTS التي لم يرسلها خادمك

هذه هي المنطقة التي لا تغطيها الشروحات بما يكفي، وفيها تظهر قيمة مقال مخصص لـ307. عندما يرسل الموقع رأس Strict-Transport-Security (HSTS)، فإنه يقول للمتصفح: من الآن فصاعدًا لا تحملني إلا عبر https. وفي الطلب التالي إلى نسخة http، يرقّي المتصفح الطلب إلى https بنفسه من دون التواصل مع الخادم — ثم يعرض هذه الترقية الداخلية كـ«307» في أدوات المطور وأدوات الزحف.

شرح John Mueller الآلية في موقعه الشخصي:

«After seeing the HTTPS URL with the HSTS header (for example, with any redirect from the HTTP version), Chrome will act like it’s seeing a 307 redirect the next time you try to access the HTTP page. Your server’s not returning a 307, Chrome is just showing it to you as such to explain that it’s doing the redirect for you.» (ترجمة) «بعد رؤية عنوان HTTPS مع رأس HSTS (مثل أي إعادة توجيه من نسخة HTTP)، سيتصرف Chrome كأنه يرى إعادة توجيه 307 في المرة التالية التي تحاول فيها الوصول إلى صفحة HTTP. خادمك لا يعيد 307؛ إنما يعرضها Chrome لك بهذه الصورة ليشرح أنه ينفذ إعادة التوجيه نيابةً عنك.»

الجسم بحجم 0 بايت هو العلامة — إذ يضيف Mueller أن «the 307 isn’t actually a redirect at all, it’s just a placeholder» (ترجمة) «307 ليست إعادة توجيه فعلية أصلًا، بل مجرد عنصر نائب». ويعرض دليلي لإعادة التوجيه النتيجة العملية للتدقيق: «When web servers require clients to only use HTTPS connections (HSTS policy), Google won’t see the 307 because it’s cached in the browser. The initial hit (without cache) will have a server response code that’s likely a 301 or a 302. But your browser will show you a 307 for subsequent requests which makes it more difficult to troubleshoot. You will need to use a fresh Incognito session to see the returned status code.» (ترجمة) «عندما تفرض خوادم الويب على العملاء اتصالات HTTPS فقط (سياسة HSTS)، لن ترى Google 307 لأنها مخزنة في المتصفح. ستكون استجابة الخادم في الزيارة الأولى (من دون cache) غالبًا 301 أو 302. لكن متصفحك سيعرض 307 في الطلبات اللاحقة، ما يصعّب التصحيح. وستحتاج إلى جلسة تصفح خاصة جديدة لرؤية رمز الحالة المعاد.»

ما الذي يراه Googlebot فعلًا مع HSTS (وكيف تطورت القصة)

يجدر جمع تصريحين من Google بينهما خمس سنوات. ففي ديسمبر 2015، قالت Zineb Ait Bahajji (وكانت في Google آنذاك)، وفق Search Engine Roundtable: وفي التصريح المنقول عن عام 2015، وُصفت حالة HSTS بأنها تجعل Googlebot يرى إعادة توجيه 301، بينما يظهر 307 كإعادة توجيه داخلية في أدوات المستخدم. وبحلول أكتوبر 2020، كان إطار Mueller في فيديو Ask Google Webmasters (عبر Search Engine Journal) مختلفًا قليلًا: «In short, [Googlebot] doesn’t interact with them. 307 redirects are generally not real redirects.» (ترجمة) «باختصار، لا يتفاعل Googlebot معها. وإعادات التوجيه 307 ليست عمومًا إعادة توجيه حقيقية.» وفي كلتا الحالتين، لا يرى الزاحف «307» نفسها التي يراها الإنسان في أدوات المطور — فقد تغيرت أدوات البنية التحتية للزحف (وأُحيل Fetch as Google إلى التقاعد لصالح URL Inspection)، لكن النقطة الأساسية صمدت عقدًا على الأقل: لا توجد 307 حقيقية صادرة من الخادم في حالة HSTS. اعتبر تصريح 2020 الإرشاد الحالي، وتصريح 2015 تاريخًا مفيدًا.

الخلاصة التشغيلية المهمة: HSTS وسيلة راحة للمتصفح، وليست آلية لاكتشاف الزحف. ما زال على مالكي المواقع إنشاء إعادة توجيه حقيقية من جهة الخادم (301 فعلية) من http إلى https إذا أرادوا أن يعمل المسار مع الزواحف.

كيف تتعامل Bing مع 307؟

بصراحة؟ توجد فجوة في التوثيق. لم أعثر على تصريح عام من Bing يعالج 307 بالاسم أو 307 الناتجة عن HSTS تحديدًا. وتغطي إرشادات Bing لإعادة التوجيه (منشور 2011 إدارة عمليات إعادة التوجيه – 301 و302 وcanonical ومنشور 2020 ترحيل موقع الويب مع Bing) انقسام 301/302 الدائم مقابل المؤقت فقط — ولا تذكر 307 أو 308 أو HSTS. لذا لا تفترض التكافؤ مع Google، وتعامل مع الأمر بوضوح: لم تقل Bing شيئًا عامًا خاصًا بـ307. والظاهرة حقيقية وذات صلة بالزحف بصرف النظر عن المحرك — إذ يوفر Screaming Frog في SEO Spider خيار «Respect HSTS Policy» تحديدًا لأن HSTS تؤثر في الزحف — لكن هذه وثائق أداة، وليست تصريحًا من Bing.

متى تختار 307 عمدًا؟

اختر 307 (بدل 302) كلما كان فقدان الطريقة أو الجسم الأصلي سيكسر شيئًا ما:

  • نقاط API وأهداف webhook التي تستقبل POST/PUT/PATCH.
  • تدفقات إرسال النماذج (POST) التي تعيد التوجيه بعد المعالجة.
  • تسليمات POST للدفع أو تسجيل الدخول بين المضيفين.
  • أي موضع يحمل فيه الطلب جسمًا لا يمكنك تحمل إسقاطه.

في نقل صفحة عادي من عنوان إلى آخر، لا يمكن لـGoogle التمييز بين 302 و307، لذا فكلاهما مناسب على محور SEO. وإذا كنت تتعامل مع النسخة الدائمة من منطق حفظ الطريقة نفسه، فهذه علاقة 301 مقابل 308 — فـ308 بالنسبة إلى 301 مثل 307 بالنسبة إلى 302.

تفضيلي المعلن، من دليل إعادة التوجيه، أكثر حسمًا من عبارة «لا يهم»: «my preferred order would be: 307 / 302 / 303 > Meta refresh 0 / HTTP refresh 0.» (ترجمة) «ترتيبي المفضل هو: 307 / 302 / 303 > Meta refresh 0 / HTTP refresh 0». أضع 307 أولًا بين الخيارات المؤقتة — فاستخدامها باستمرار يعني أنك آمن دائمًا من جهة حفظ الطريقة، وهو قريب من حجة «الاكتمال» التي قدمها Mueller أيضًا. وأيًا كان اختيارك، انتبه إلى ألا تصبح 307 الحقيقية (أو أثر HSTS) قفزةً ضمن سلسلة إعادة توجيه أطول — فكل قفزة إضافية تعني زمن انتقال وكفاءة مهدرة.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

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