حل خطای ⁦err_too_many_redirects⁩ (تغییر مسیر بیش از حد)

تاریخ انتشار:

17 دقیقه مطالعه

Acar Diveroli
نویسنده: Acar Diveroli
حلقه‌های تودرتوی تغییر مسیر میان گره‌های ⁦/account⁩ و ⁦/login⁩؛ پرش بیستم آبی پیش از ⁦/login⁩ می‌ایستد، کنار فهرست پرش‌ها
فهرست مطالب

روی پیوند یک فروشگاه یا یک صفحه ورود کلیک می‌کنید. زبانه لحظه‌ای می‌چرخد و سپس گوگل کروم عنوان «این صفحه کار نمی‌کند» (در رابط انگلیسی ⁦"This page isn't working"⁩)، سطری که می‌گوید سایت شما را بیش از حد به نشانی‌های دیگر هدایت کرده است و در پایین صفحه ERR_TOO_MANY_REDIRECTS را نشان می‌دهد. فایرفاکس می‌نویسد «تغییرمسیرهای صفحه دارای حلقه تکرار است» و سافاری می‌گوید تغییر مسیرهای بیش از حدی رخ داده است.

اتفاق زیان‌باری نیفتاده است. سایت مرورگر شما را پیوسته از یک نشانی به نشانی دیگر فرستاده تا جایی که مرورگر دیگر دنبالش نکرده است. در ادامه می‌خوانید حلقه تغییر مسیر چیست، بازدیدکننده چه راه‌حل‌هایی دارد، اگر سایت مال شماست چه چیزی را باید تغییر دهید (Cloudflare، قاعده‌های HTTPS و www، وردپرس)، یک فرمان که زنجیره را نشان می‌دهد و همین خطا درون یک اسکرپر.

خطای ERR_TOO_MANY_REDIRECTS یعنی چه؟

تغییر مسیر (ریدایرکت) پاسخ کوتاهی از سرور است که می‌گوید «این صفحه جای دیگری است، به آنجا بروید» و مرورگر بی‌آنکه از شما بپرسد آن را دنبال می‌کند. سایت‌ها همیشه از آن استفاده می‌کنند: از http:// به https://، از صفحه‌ای قدیمی به صفحه‌ای تازه، از صفحه‌ای ویژه اعضا به فرم ورود و برگشت.

حلقه تغییر مسیر راهی است که هرگز تمام نمی‌شود: صفحه A شما را به B می‌فرستد و B دوباره به A. بخش 15.4 از ⁦RFC 9110⁩ از برنامه‌های کلاینت مانند مرورگر می‌خواهد تغییر مسیرهای چرخه‌ای را «تشخیص دهند و در آن‌ها مداخله کنند»، و استاندارد Fetch که مرورگرها پیاده‌سازی می‌کنند، پس از 20 تغییر مسیر درخواست را با خطای شبکه پایان می‌دهد. کروم و فایرفاکس هر دو همان‌جا می‌ایستند.

این خطا در هر مرورگر چگونه دیده می‌شود؟

متن‌های کروم و فایرفاکس از فایل‌های متنی خود مرورگرها و ترجمه‌های فارسی کنونی آن‌ها آمده است. مایکروسافت اج، اپرا و بریو بر موتور کروم (کرومیوم) ساخته شده‌اند و همین کد را نشان می‌دهند.

مرورگرآنچه روی صفحه نوشته شدهکد
کروم«این صفحه کار نمی‌کند»، «تعداد دفعاتی که ⁦example.com⁩ شما را به نشانی‌های دیگر هدایت کرده بیش از حد است.» و پیوند «حذف کوکی‌ها را امتحان کنید»ERR_TOO_MANY_REDIRECTS
فایرفاکس«تغییرمسیرهای صفحه دارای حلقه تکرار است» و یادداشتی که می‌گوید نپذیرفتن کوکی‌ها می‌تواند علت آن باشدندارد
سافاری (مک، آیفون)سافاری نمی‌تواند صفحه را باز کند، چون تغییر مسیرهای بیش از حدی رخ داده استندارد

صفحه بایگانی‌شده راهنمای اپل برای پیام سافاری همین حلقه را توصیف می‌کند. هر سه مرورگر نخست به کوکی‌ها اشاره می‌کنند.

حلقه تغییر مسیر گام‌به‌گام چگونه پدید می‌آید؟

صفحه‌ای ویژه اعضا را در نظر بگیرید:

  1. نشانی https://example.com/account را باز می‌کنید.
  2. سرور دنبال کوکی ورود خود می‌گردد؛ کوکی تکه متن کوچکی است که سایت پیش‌تر در مرورگر شما ذخیره کرده است. چیزی پیدا نمی‌کند و شما را به /login می‌فرستد.
  3. صفحه ورود می‌بیند که در سمت خودش وارد شده‌اید، کوکی تازه‌ای می‌گذارد و شما را برمی‌گرداند.
  4. اگر مرورگر آن کوکی را نگه ندارد یا نفرستد (مسدود شده، از پیش منقضی شده یا برای نشانی دیگری تنظیم شده است)، گام 2 تکرار می‌شود.
  5. پس از 20 دور، مرورگر می‌ایستد و خطا را نشان می‌دهد.

خانواده دیگر به کوکی نیازی ندارد: دو قاعده که با هم موافق نیستند. یک لایه https:// را اجباری می‌کند و لایه‌ای دیگر بازدیدکننده را به http:// برمی‌گرداند؛ یا یک قاعده www. را اضافه می‌کند و قاعده‌ای دیگر آن را برمی‌دارد.

علت آن چیست و مشکل از سمت کیست؟

علتسمت چه کسینشانه معمولنخستین گام
کوکی کهنه، خراب یا مسدودشدهسمت شمایک سایت، یک مرورگرکوکی‌های آن سایت را حذف کنید یا اجازه دهید
افزونه‌ای که نشانی‌ها را بازنویسی می‌کندسمت شمادر پنجره ناشناس باز می‌شودافزونه‌ها را خاموش کنید
ساعت دستگاه که خیلی جلو یا عقب استسمت شماحلقه هنگام ورود به حسابزمان را خودکار تنظیم کنید
VPN یا پروکسی‌ای که کشور دیگری را نشان می‌دهدسمت شما و سمت سایتفقط وقتی VPN روشن استآن را خاموش کنید
تغییر مسیر دائمی‌ای که مرورگر به خاطر سپرده استسمت شما، پس از اصلاح صاحب سایتدستگاه‌های دیگر باز می‌کننداز پنجره ناشناس استفاده کنید
تنظیمات HTTPS درگیر با هم، اغلب حالت Flexible در Cloudflareسمت سایتهمه بازدیدکنندگان، همه دستگاه‌هاصاحب سایت: حالت SSL/TLS را تغییر دهد
قاعده‌های www یا https در دو جاسمت سایتنشانی میان دو شکل جابه‌جا می‌شودصاحب سایت: فقط یک قاعده نگه دارد
نشانی نادرست در تنظیمات وردپرسسمت سایتکل سایت یا پیشخوان در حلقه می‌افتدصاحب سایت: دو فیلد نشانی را اصلاح کند

به‌عنوان بازدیدکننده چگونه آن را رفع کنید؟

پس از هر گام صفحه را دوباره بارگذاری کنید.

  1. یک پنجره ناشناس را امتحان کنید. در کروم بیشتر > پنجره ناشناس جدید را انتخاب کنید. این پنجره بدون کوکی شروع می‌شود و افزونه‌ها فقط وقتی در آن اجرا می‌شوند که خودتان اجازه داده باشید. اگر صفحه باز شد، علت یک کوکی یا یک افزونه است.
  2. کوکی‌های همان یک سایت را حذف کنید، همان سایتی که نامش در پیام آمده است. این کار فقط شما را از همان سایت خارج می‌کند.
    • کروم در رایانه: بیشتر > تنظیمات > حریم خصوصی و امنیت > کوکی‌های طرف سوم > دیدن همه داده‌ها و اجازه‌های سایت را باز کنید، نام سایت را جست‌وجو کنید و حذف را انتخاب کنید (گام‌های گوگل).
    • کروم در اندروید: در همان سایت، روی اطلاعات صفحه در ابتدای نوار نشانی (در رابط فارسی سمت راست) تک‌ضرب بزنید، سپس کوکی‌ها و داده‌های سایت و بعد حذف.
    • فایرفاکس: روی نماد سپر در ابتدای نوار نشانی کلیک کنید و سپس پاک کردن کوکی‌ها و داده‌های سایت را بزنید (گام‌های موزیلا).
    • سافاری در مک: Safari > Settings > Privacy > Manage Website Data (سافاری > تنظیمات > حریم خصوصی > مدیریت داده‌های وب‌سایت) را باز کنید، سایت را انتخاب کنید و روی Remove (حذف) کلیک کنید (گام‌های اپل).
    • سافاری در آیفون: Settings > Apps > Safari > Advanced > Website Data > Remove All Website Data (تنظیمات > برنامه‌ها > سافاری > پیشرفته > داده‌های وب‌سایت > حذف همه داده‌های وب‌سایت). این کار داده‌های همه سایت‌ها را پاک می‌کند، پس در سایت‌های دیگر هم باید دوباره وارد شوید.
  3. افزونه‌ها را خاموش کنید. مسدودکننده‌های تبلیغات، ابزارهای حریم خصوصی، افزونه‌های «همیشه HTTPS» و افزونه‌های VPN می‌توانند مقصد یک صفحه را تغییر دهند. در کروم بیشتر > افزونه‌ها > مدیریت افزونه‌ها را باز کنید و آن‌ها را یکی‌یکی خاموش کنید (گام‌های گوگل).
  4. تاریخ و ساعت را بررسی کنید. مرورگر کوکی‌ای را که تاریخ انقضایش بر اساس ساعت دستگاه شما گذشته باشد دور می‌اندازد (بخش 5.3 از ⁦RFC 6265⁩)؛ پس ساعتی که چند روز جلوتر است می‌تواند کوکی تازه ورود را بلافاصله ناپدید کند. در ویندوز Start > Settings > Time & language > Date & time (شروع > تنظیمات > زمان و زبان > تاریخ و زمان) را انتخاب کنید و Set time automatically (تنظیم خودکار زمان) را روشن کنید (گام‌های مایکروسافت). ساعت نادرست هشدار «اتصال شما خصوصی نیست» را هم پدید می‌آورد.
  5. VPN یا پروکسی را خاموش کنید و صفحه را دوباره بارگذاری کنید؛ بخش بعد دلیلش را توضیح می‌دهد.
  6. شبکه دیگری را امتحان کنید. اگر صفحه در گوشی شما با اینترنت همراه هم باز نمی‌شود، حلقه در خود سایت است: نشانی صفحه و زمان را به صاحب سایت بگویید و صبر کنید. صفحه‌ای که اصلاً وصل نمی‌شود خطای دیگری دارد.

چرا هنگام ورود به حساب این‌قدر رخ می‌دهد؟

فرایندهای ورود عمداً میان نشانی‌ها جابه‌جا می‌شوند: یک فروشگاه شما را به یک سرویس ورود (سرویس خودش، گوگل یا مایکروسافت) می‌فرستد که کوکی‌ای می‌گذارد و شما را برمی‌گرداند. اگر کوکی هر یک از دو طرف نباشد یا مسدود شود، دوباره دور می‌زنید. وقتی پیام نام سرویس را می‌برد، مانند «تعداد دفعاتی که ⁦accounts.google.com⁩ شما را به نشانی‌های دیگر هدایت کرده بیش از حد است.»، کوکی‌های آن سرویس را هم در کنار کوکی‌های سایت حذف کنید و اگر کوکی‌ها را مسدود می‌کنید، به هر دو اجازه دهید.

چرا VPN یا پروکسی گاهی حلقه تغییر مسیر می‌سازد؟

بسیاری از سایت‌ها نسخه کشوری را از روی آدرس IP شما انتخاب می‌کنند، مثلاً /de/ برای آلمان، و این انتخاب را در یک کوکی هم به خاطر می‌سپارند. وقتی IP شما یک کشور را نشان می‌دهد و کوکی کشور دیگری را، این دو قاعده می‌توانند شما را مدام میان دو نسخه رفت و برگشت دهند (مسدودسازی جغرافیایی چیست و سایت‌ها چگونه موقعیت را می‌فهمند؟).

VPN کشوری را که سایت می‌بیند تغییر می‌دهد و یک پروکسی چرخشی حتی ممکن است دو گام از یک زنجیره را از دو آدرس متفاوت بفرستد. VPN را خاموش کنید و صفحه را دوباره بارگذاری کنید؛ اگر کار کرد، پیش از وصل شدن دوباره کوکی‌های سایت را حذف کنید یا کشور را در خود سایت انتخاب کنید. اگر آگاهانه از راه پروکسی مرور می‌کنید، در طول بازدید یک خروجی ثابت نگه دارید: یک پروکسی با نشست ثابت همان IP را برای مدتی که تعیین می‌کنید نگه می‌دارد (فرق پروکسی و VPN چیست؟).

اگر سایت مال شماست: حلقه از کجا می‌آید؟

نخست زنجیره را بخوانید (بخش بعد)؛ الگوی آن به قاعده نادرست اشاره می‌کند.

حالت SSL از نوع Flexible در Cloudflare

در حالت Flexible، بازدیدکنندگان با HTTPS به Cloudflare می‌رسند، اما Cloudflare با HTTP ساده و بدون رمزگذاری به سرور شما وصل می‌شود (حالت‌های رمزگذاری Cloudflare). سروری که HTTP را به HTTPS تغییر مسیر می‌دهد، هر درخواستی را که از Cloudflare می‌رسد HTTP می‌بیند و دوباره تغییر مسیر می‌دهد؛ در نتیجه https://example.com/ به خودش تغییر مسیر داده می‌شود.

در داشبورد Cloudflare، SSL/TLS > Overview را باز کنید و اگر سرورتان گواهی معتبر دارد ⁦Full (strict)⁩ را انتخاب کنید، یا تا وقتی گواهی بگیرید Full را. حالت برعکس هم حلقه می‌سازد: حالت Full با سروری که HTTPS را به HTTP برمی‌گرداند. صفحه Cloudflare درباره این خطا از Always Use HTTPS، HSTS و قاعده‌های تغییر مسیر متعارض هم نام می‌برد.

قاعده‌های HTTPS و www در دو جا

پنل هاست www. را به نشانی اضافه می‌کند در حالی که برنامه سایت آن را برمی‌دارد، یا CDN اتصال را به HTTPS می‌برد در حالی که سرور آن را به HTTP برمی‌گرداند. یک نشانی عمومی انتخاب کنید، آن را فقط در یک لایه اعمال کنید و قاعده‌های دیگر را حذف کنید، از جمله افزونه‌های تغییر مسیر و سطرهای .htaccess. نوشته فوروارد پروکسی و ریورس پروکسی: تفاوت در چیست؟ توضیح می‌دهد وقتی یک CDN جلوی سایت قرار دارد، کدام لایه چه چیزی را می‌بیند.

تنظیمات نشانی در وردپرس

وردپرس تغییر مسیرهایش را از روی نشانی وردپرس (URL) و نشانی سایت (URL) در تنظیمات > عمومی می‌سازد. راهنمای وردپرس می‌گوید هر دو باید با https:// شروع شوند و در پایانشان اسلش نباشد؛ پروتکل نادرست یا یک www اضافه بازدیدکنندگان را دور خود می‌چرخاند. اگر حلقه راه ورود به پیشخوان را بسته است، این دو مقدار را در فایل wp-config.php تعیین کنید:

php
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );

اگر یک متعادل‌کننده بار یا ریورس پروکسی کار HTTPS را انجام می‌دهد و خود وردپرس روی HTTP ساده اجرا می‌شود، وردپرس هر درخواست را ناامن می‌داند و به تعبیر مستندات خودش در یک حلقه بی‌پایان تغییر مسیر می‌افتد. کاری کنید که هدر X-Forwarded-Proto را که پروکسی می‌فرستد بخواند، همان‌طور که راهنمای HTTPS وردپرس نشان می‌دهد.

اصلاح را در پنجره ناشناس بیازمایید

استاندارد HTTP به مرورگرها اجازه می‌دهد تغییر مسیر 301 (⁦Moved Permanently⁩، یعنی «برای همیشه منتقل شد») را ذخیره کنند؛ پس مرورگر خودتان ممکن است پس از اصلاح همچنان در حلقه بماند. در یک پنجره ناشناس آزمایش کنید و تا وقتی در حال آزمودن هستید از تغییر مسیرهای موقت 302 استفاده کنید.

سطح پیشرفته: زنجیره تغییر مسیر را با یک فرمان ببینید

این بخش برای کسانی است که با خط فرمان راحت‌اند. curl در ویندوز 10، ویندوز 11 و مک از پیش نصب است (در PowerShell به جای آن curl.exe بنویسید). این فرمان تغییر مسیرها را دنبال می‌کند، هدرهای هر گام را چاپ می‌کند و پس از ده گام می‌ایستد:

bash
curl -sSIL --max-redirs 10 https://example.com/

آن را روی یک سرور آزمایشی در رایانه خودمان اجرا کردیم که حلقه Flexible را بازسازی می‌کند. سطرهای کلیدی، به شکل کوتاه‌شده (⁦curl 8.21.0⁩، ویندوز 11):

text
HTTP/1.1 301 Moved Permanently
Location: https://example.com/
HTTP/1.1 301 Moved Permanently
Location: https://example.com/
HTTP/1.1 301 Moved Permanently
Location: https://example.com/
curl: (47) Maximum (10) redirects followed

این خروجی را این‌گونه بخوانید:

  • Location همان نشانی‌ای را تکرار می‌کند که خواسته بودید: سرور فکر می‌کند درخواست با HTTP آمده است (حالت Flexible، یا پروکسی‌ای که X-Forwarded-Proto را نمی‌فرستد).
  • نشانی میان دو شکل جابه‌جا می‌شود، مثلاً با www و بدون آن: دو قاعده با هم موافق نیستند.
  • نشانی میان یک صفحه و صفحه ورود جابه‌جا می‌شود: یک کوکی نگه داشته نمی‌شود؛ سطرهای Set-Cookie را بررسی کنید.
  • زنجیره با 200 تمام می‌شود: سرور سالم است و حلقه در کوکی‌ها یا حافظه پنهان (کش) یک مرورگر است.

اگر اسکرپر یا خزنده می‌نویسید

هر دو پیام زیر را روی یک صفحه آزمایشی که در حلقه می‌افتد پدید آوردیم:

ابزارآنچه چاپ می‌کند
Requests در پایتون (نسخه 2.34)requests.exceptions.TooManyRedirects: Exceeded 30 redirects.
Playwright برای پایتون (نسخه 1.58)Page.goto: net::ERR_TOO_MANY_REDIRECTS at <url>

کتابخانه Requests پس از 30 تغییر مسیر دست می‌کشد و مرورگرها پس از 20، و بالا بردن این سقف هرگز کمکی نمی‌کند. علت‌های معمول در کد:

  • ظرف کوکی مشترکی وجود ندارد. فراخوانی‌های جداگانه requests.get() کوکی‌ها را با هم شریک نمی‌شوند؛ برای هر سایت یک requests.Session() به کار ببرید (نشست و کوکی در Python: ورود با requests).
  • کوکی‌ای که کلاینت شما هرگز دریافت نمی‌کند. برخی صفحه‌ها آن را با JavaScript یا پس از یک کلیک می‌گذارند، مانند بنر رضایت کوکی، و یک کلاینت ساده HTTP هرگز آن را اجرا نمی‌کند. در چنین صفحه‌هایی از API سایت یا یک مرورگر واقعی استفاده کنید. اگر زنجیره به یک صفحه مسدودی ختم شد، همان‌جا بایستید: این تصمیم سایت است (خطای Sorry, You Have Been Blocked چیست و چرا ظاهر می‌شود؟).
  • IP خروجی در میانه راه عوض می‌شود. با چرخش به‌ازای هر درخواست، هر گام می‌تواند از IP دیگری، حتی از کشور دیگری، خارج شود و سایتی که نسخه کشوری را از روی IP انتخاب می‌کند، گام دوم را به جایی می‌فرستد که گام اول هرگز نخواسته بود. با نشست ثابت برای هر زنجیره یک خروجی نگه دارید و کشور را با هدف‌گیری ثابت کنید؛ پروکسی مسکونی هر دو را ارائه می‌کند (پروکسی چرخشی چیست؟ چرخش IP برای اسکرپینگ و اتوماسیون).

برای اینکه ببینید زنجیره کجا برمی‌گردد، آن را گام‌به‌گام دنبال کنید:

python
from urllib.parse import urljoin, urlsplit

import requests

PROXY = "http://user:pass@pr.proxynet.io:8000"  # use a sticky-session username
START = "https://example.com/account"


def trace(url, session, max_hops=10):
    """Follow redirects one hop at a time and stop at the first repeat."""
    seen = set()
    for hop in range(max_hops):
        r = session.get(url, allow_redirects=False, timeout=15)
        target = r.headers.get("Location", "")
        cookie = "sets a cookie" if "Set-Cookie" in r.headers else "no cookie"
        print(hop, r.status_code, urlsplit(url).path, "->", target, f"({cookie})")
        if not r.is_redirect:
            return r
        if url in seen:
            print("Loop found: this URL was already requested")
            return None
        seen.add(url)
        url = urljoin(url, target)
    print(f"Stopped after {max_hops} hops")
    return None


with requests.Session() as s:  # one cookie jar for the whole chain
    s.proxies = {"http": PROXY, "https": PROXY}
    s.headers["User-Agent"] = "example-crawler/1.0 (+https://example.com/bot)"
    trace(START, s)

این اسکریپت را از راه یک پروکسی آزمایشی محلی با احراز هویت user:pass روی صفحه‌ای آزمایشی اجرا کردیم که حلقه رضایت کوکی را بازسازی می‌کند؛ در یک سایت واقعی این کوکی از کلیک روی یک دکمه می‌آمد (⁦requests 2.34.2⁩، ⁦Python 3.13⁩):

text
0 302 /account -> /consent (no cookie)
1 302 /consent -> /account (no cookie)
2 302 /account -> /consent (no cookie)
Loop found: this URL was already requested

هیچ گامی کوکی نمی‌گذارد، پس این کلاینت هرگز به /account نمی‌رسد. اگر گامی کوکی بگذارد و حلقه باز هم ادامه پیدا کند، دامنه (domain) و مسیر (path) کوکی را با نشانی بعدی مقایسه کنید و سپس بررسی کنید که IP خروجی‌تان ثابت مانده باشد. مؤدبانه اشکال‌زدایی کنید: هر بار یک زنجیره، یک User-Agent که شما را معرفی می‌کند، و پایبندی به قاعده‌های robots.txt.

کجا ممکن است با آن روبه‌رو شوید

اشتباه‌های رایج

  • حذف همه کوکی‌ها در گام اول. شما را از همه جا خارج می‌کند؛ از سایتی شروع کنید که نامش در پیام آمده است.
  • نصب دوباره مرورگر یا راه‌اندازی دوباره مودم. حلقه در یک کوکی، یک افزونه یا قاعده‌های سایت است.
  • بالا بردن سقف تغییر مسیر در کد. حلقه در 30 پرش و در 100 پرش همچنان حلقه است.
  • آزمودن اصلاح سرور در همان مرورگر، که یک 301 را به خاطر سپرده و حلقه قدیمی را زنده نگه می‌دارد.
  • خاموش کردن HTTPS برای متوقف کردن حلقه به جای هماهنگ کردن لایه‌ها با هم.

راهنمای انتخاب

وضعیت شماچه کنید
یک سایت باز نمی‌شود، یا فقط بیرون از پنجره ناشناس باز نمی‌شودکوکی‌های آن سایت را حذف کنید، سپس افزونه‌ها را بررسی کنید
حلقه از یک صفحه ورود شروع می‌شودکوکی‌های سایت و سرویس ورود را حذف کنید
فقط وقتی VPN یا پروکسی روشن استآن را خاموش کنید، کوکی‌های سایت را حذف کنید و کشور را در سایت انتخاب کنید
در همه دستگاه‌ها و شبکه‌ها باز نمی‌شودصبر کنید یا با سایت تماس بگیرید
سایت شما روی Cloudflare به همان نشانی تغییر مسیر می‌دهدحالت SSL/TLS را روی ⁦Full (strict)⁩ بگذارید
سایت وردپرسی شما پس از رفتن به HTTPS در حلقه افتاده استدو فیلد نشانی را اصلاح کنید
اسکرپر شما پیام Exceeded 30 redirects می‌دهدبرای هر زنجیره یک نشست و یک خروجی ثابت؛ گام‌ها را دنبال کنید

پرسش‌های متداول

آیا ERR_TOO_MANY_REDIRECTS ویروس یا نشانه هک شدن است؟

نه. این خطا از یک کوکی، یک افزونه یا قاعده‌های تغییر مسیر خود سایت می‌آید و مرورگر عمداً متوقف شده است.

چرا خطا در یک سایت دیده می‌شود و در سایت‌های دیگر نه؟

حلقه در قاعده‌های همان سایت یا در کوکی‌هایی است که برای آن ذخیره شده است؛ سایت‌های دیگر کوکی‌ها و قاعده‌های خودشان را دارند.

آیا باید همه کوکی‌هایم را حذف کنم؟

نه. کوکی‌های سایتی را که نامش در پیام آمده حذف کنید و اگر حلقه از صفحه ورود شروع می‌شود، کوکی‌های سرویس ورود آن را هم. این کار فقط شما را از همان سایت‌ها خارج می‌کند.

چرا حلقه فقط وقتی VPN روشن است رخ می‌دهد؟

سایت نسخه کشوری را از روی IP شما انتخاب می‌کند، در حالی که یک کوکی کشور دیگری را به خاطر دارد. VPN را خاموش کنید، کوکی‌های سایت را حذف کنید و دوباره وصل شوید، یا کشور را در خود سایت انتخاب کنید.

کروم اجازه چند تغییر مسیر را می‌دهد؟

بیست، یعنی سقفی که استاندارد Fetch تعیین کرده است؛ فایرفاکس هم همین عدد را به کار می‌برد و کتابخانه Requests پایتون عدد 30 را. یک صفحه معمولی به یک یا دو تغییر مسیر نیاز دارد.

خطای too many redirects را در Cloudflare چگونه رفع کنیم؟

حالت SSL/TLS را روی ⁦Full (strict)⁩ بگذارید که به گواهی معتبر روی سرور شما نیاز دارد، یا اگر روی Flexible می‌مانید، تغییر مسیر HTTP به HTTPS خود سرور را بردارید. سپس Always Use HTTPS، HSTS و قاعده‌های تغییر مسیرتان را از نظر موارد تکراری بررسی کنید.

خلاصه

ERR_TOO_MANY_REDIRECTS یعنی سایتی مرورگر شما را دور یک دایره چرخانده و مرورگر پس از 20 پرش ایستاده است. بازدیدکنندگان بیشتر موارد را با حذف کوکی‌های یک سایت، امتحان یک پنجره ناشناس، خاموش کردن افزونه‌ها و VPN و بررسی ساعت حل می‌کنند؛ حلقه‌ای را که در همه دستگاه‌ها دیده می‌شود باید خود سایت رفع کند. صاحبان سایت باید دنبال دو قاعده‌ای بگردند که با هم موافق نیستند. در کد، برای هر زنجیره یک نشست و یک خروجی ثابت نگه دارید. انواع پروکسی و کاربرد هرکدام را می‌توانید در صفحه پروکسی ما مقایسه کنید.

پرسش از ChatGPTپرسش از Claude