خطای بیش از حد درخواست‌ها (Too Many Redirects) در وردپرس

۳ بازديد

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

 

ریدایرکت در حالت عادی برای انتقال کاربران از یک URL به URL دیگر استفاده می‌شود. برای مثال، هنگام انتقال سایت از HTTP به HTTPS یا تغییر آدرس یک صفحه، ریدایرکت می‌تواند کاربران و موتورهای جستجو را به مسیر جدید هدایت کند. مشکل زمانی ایجاد می‌شود که قوانین انتقال به شکل اشتباه تنظیم شده باشند و چند مسیر با یکدیگر تداخل پیدا کنند.

 

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

 

خطای Too Many Redirects چیست؟

 

خطای Too Many Redirects به این معنی است که مرورگر برای رسیدن به یک صفحه، تعداد زیادی ریدایرکت دریافت کرده و در نهایت نمی‌تواند مسیر را تکمیل کند.

 

برای درک بهتر، فرض کنید کاربر وارد آدرس A شود. سرور او را به آدرس B منتقل می‌کند و آدرس B دوباره به A برمی‌گردد. در این حالت مرورگر وارد یک مسیر تکراری می‌شود.

 

مسیر به این شکل خواهد بود:

 

A ← B ← A ← B ← A

 

چون هیچ مقصد نهایی وجود ندارد، مرورگر پس از چند بار تلاش فرآیند را متوقف می‌کند.

 

این اتفاق ممکن است در سطح وردپرس، سرور، CDN، افزونه‌ها یا تنظیمات SSL رخ دهد.

 

مهم‌ترین دلایل ایجاد خطای Too Many Redirects

تنظیمات نادرست HTTPS

 

یکی از رایج‌ترین دلایل این خطا، تنظیم اشتباه انتقال HTTP به HTTPS است.

 

زمانی که گواهی SSL روی سایت فعال می‌شود، معمولاً لازم است تمام درخواست‌های HTTP به نسخه HTTPS منتقل شوند. اگر این انتقال هم‌زمان توسط چند سیستم مدیریت شود، احتمال ایجاد حلقه افزایش پیدا می‌کند.

 

برای مثال ممکن است سرور درخواست HTTP را به HTTPS منتقل کند، اما یک افزونه یا سرویس واسط دوباره همان درخواست را به HTTP بازگرداند.

 

در نتیجه مرورگر بین دو نسخه سایت جابه‌جا می‌شود.

 

ناهماهنگی آدرس سایت در وردپرس

 

وردپرس دارای دو آدرس اصلی برای مدیریت سایت است:

 

WordPress Address URL

 

Site Address URL

 

اگر این دو مقدار به‌درستی تنظیم نشده باشند، ممکن است ریدایرکت‌های غیرضروری ایجاد شوند.

 

برای مثال، اگر یکی از آدرس‌ها با HTTP و دیگری با HTTPS ثبت شده باشد، وردپرس ممکن است تلاش کند کاربر را به آدرس دیگری منتقل کند.

 

همچنین تفاوت میان نسخه www و بدون www دامنه نیز می‌تواند در برخی تنظیمات باعث ایجاد مشکل شود.

 

تنظیمات اشتباه افزونه‌های ریدایرکت

 

افزونه‌های مدیریت ریدایرکت برای کنترل URLهای قدیمی و جدید بسیار کاربردی هستند، اما ایجاد قوانین متناقض در آنها می‌تواند مشکل‌ساز شود.

 

فرض کنید یک قانون:

 

صفحه A → صفحه B

 

و قانون دیگری:

 

صفحه B → صفحه A

 

را تعریف کرده باشد.

 

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

 

بنابراین قوانین ریدایرکت باید به‌صورت منظم بررسی شوند.

 

حلقه ریدایرکت وردپرس چگونه ایجاد می‌شود؟

 

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

 

این حلقه همیشه به شکل ساده A به B و B به A نیست. گاهی ممکن است مسیر پیچیده‌تری ایجاد شود.

 

برای مثال:

 

صفحه A → صفحه B

صفحه B → صفحه C

صفحه C → صفحه A

 

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

 

حلقه ممکن است بین وردپرس و سرور یا حتی میان وردپرس، CDN و افزونه‌های سایت ایجاد شود.

 

نقش افزونه‌های کش در ایجاد ریدایرکت

 

افزونه‌های کش برای افزایش سرعت سایت استفاده می‌شوند، اما برخی از آنها تنظیماتی برای مدیریت HTTPS، URL و درخواست‌های مرورگر دارند.

 

اگر این تنظیمات با قوانین سرور هماهنگ نباشند، امکان ایجاد ریدایرکت‌های تکراری وجود دارد.

 

برای مثال، ممکن است افزونه کش انتقال به HTTPS را فعال کرده باشد، در حالی که همین کار قبلاً در سرور انجام شده است.

 

در چنین شرایطی بهتر است تنظیمات مربوط به SSL و ریدایرکت در افزونه بررسی شود.

 

تأثیر افزونه‌های امنیتی بر ریدایرکت

 

برخی افزونه‌های امنیتی نیز می‌توانند روی مسیر دسترسی کاربران تأثیر بگذارند.

 

این افزونه‌ها ممکن است برای افزایش امنیت، کاربران را از HTTP به HTTPS منتقل کنند یا قوانین خاصی برای دسترسی به صفحات ایجاد کنند.

 

اگر این قوانین با تنظیمات سرور تداخل داشته باشند، خطای Too Many Redirects ایجاد خواهد شد.

 

اگر مشکل بلافاصله بعد از نصب یا پیکربندی یک افزونه امنیتی شروع شده است، بررسی تنظیمات همان افزونه می‌تواند نقطه شروع مناسبی برای عیب‌یابی باشد.

 

مشکلات فایل htaccess

 

فایل htaccess در بسیاری از سرورهای وردپرسی وظیفه اجرای برخی قوانین مربوط به URL و ریدایرکت را بر عهده دارد.

 

وجود قوانین تکراری یا اشتباه در این فایل می‌تواند باعث ایجاد حلقه انتقال شود.

 

برای مثال، اگر چند دستور مختلف برای انتقال HTTP به HTTPS وجود داشته باشد، احتمال تداخل افزایش پیدا می‌کند.

 

همچنین قوانینی که برای تغییر نسخه www یا مدیریت URLهای خاص ایجاد شده‌اند باید با سایر تنظیمات سایت هماهنگ باشند.

 

قبل از ویرایش htaccess بهتر است از فایل موجود نسخه پشتیبان تهیه شود.

 

بررسی تنظیمات CDN

 

اگر سایت از CDN استفاده می‌کند، تنظیمات مربوط به SSL و ریدایرکت در آن نیز باید بررسی شود.

 

گاهی SSL روی سرور اصلی به‌درستی تنظیم شده، اما CDN از حالت دیگری برای برقراری ارتباط با سرور استفاده می‌کند.

 

این ناهماهنگی ممکن است باعث شود درخواست‌ها بین HTTP و HTTPS رفت‌وبرگشت داشته باشند.

 

بنابراین در سایت‌هایی که از CDN استفاده می‌کنند، بررسی تنظیمات SSL در هر دو سمت اهمیت زیادی دارد.

 

روش تشخیص خطای Too Many Redirects

 

قبل از تغییر تنظیمات، بهتر است مسیر ریدایرکت مشخص شود.

 

بررسی URLهای سایت

 

ابتدا آدرس اصلی سایت را بررسی کنید و مشخص کنید سایت باید با کدام ساختار در دسترس باشد:

 

HTTP یا HTTPS

 

WWW یا بدون WWW

 

سپس تمام تنظیمات را بر اساس همین نسخه بررسی کنید.

 

بررسی قوانین ریدایرکت

 

قوانین موجود در افزونه‌های مدیریت ریدایرکت، فایل htaccess و تنظیمات سرور باید بررسی شوند.

 

هدف این است که مشخص شود یک URL دقیقاً به کجا منتقل می‌شود.

 

غیرفعال کردن افزونه‌های مشکوک

 

اگر احتمال می‌دهید افزونه‌ای باعث ایجاد مشکل شده است، می‌توان آن را به‌صورت موقت غیرفعال کرد.

 

اگر پس از غیرفعال کردن افزونه مشکل برطرف شد، باید تنظیمات آن بررسی شود.

 

آزمایش در مرورگر ناشناس

 

گاهی اطلاعات قدیمی ذخیره‌شده در مرورگر باعث می‌شوند کاربر همچنان نسخه قبلی ریدایرکت را دریافت کند.

 

باز کردن سایت در حالت ناشناس می‌تواند مشخص کند مشکل از مرورگر است یا سرور.

 

روش‌های رفع خطای Too Many Redirects

هماهنگ کردن HTTP و HTTPS

 

یکی از اولین اقدامات، مشخص کردن نسخه اصلی سایت است.

 

اگر سایت باید با HTTPS فعالیت کند، تمام بخش‌های وردپرس، سرور، افزونه‌ها و CDN باید بر اساس همین ساختار تنظیم شوند.

 

نباید چند سیستم مختلف به‌صورت مستقل برای انتقال HTTP و HTTPS قوانین متفاوتی اعمال کنند.

 

بررسی Site URL و WordPress URL

 

آدرس‌های اصلی وردپرس باید یکسان و صحیح باشند.

 

تفاوت میان این آدرس‌ها می‌تواند باعث ایجاد انتقال‌های غیرضروری شود.

 

حذف قوانین ریدایرکت متناقض

 

قوانینی که یک URL را به مقصدی منتقل می‌کنند که دوباره به URL قبلی بازمی‌گردد باید اصلاح یا حذف شوند.

 

همچنین ریدایرکت‌های زنجیره‌ای طولانی بهتر است تا حد امکان ساده شوند.

 

پاک کردن کش

 

پس از اصلاح تنظیمات، کش وردپرس، CDN و مرورگر باید پاک شود.

 

در غیر این صورت ممکن است قوانین قدیمی همچنان در دسترس باشند و تصور شود مشکل برطرف نشده است.

 

تأثیر خطای Too Many Redirects بر سئو

 

این خطا فقط یک مشکل فنی برای کاربران نیست و می‌تواند روی سئو سایت نیز اثر بگذارد.

 

موتورهای جستجو برای بررسی صفحات باید بتوانند به URL موردنظر دسترسی پیدا کنند. اگر خزنده موتور جستجو در یک چرخه ریدایرکت گرفتار شود، نمی‌تواند محتوای صفحه مقصد را به‌درستی دریافت کند.

 

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

 

از طرف دیگر، کاربرانی که با خطای ریدایرکت مواجه می‌شوند نیز معمولاً نمی‌توانند محتوای موردنظر خود را مشاهده کنند. این موضوع تجربه کاربری نامناسبی ایجاد می‌کند.

 

چگونه از ایجاد حلقه ریدایرکت جلوگیری کنیم؟

 

برای جلوگیری از این مشکل بهتر است قوانین ریدایرکت سایت به‌صورت منظم بررسی شوند.

 

همچنین بهتر است:

 

فقط یک سیستم مسئول انتقال HTTP به HTTPS باشد.

قوانین ریدایرکت مستند و مدیریت شوند.

افزونه‌های مشابه برای یک وظیفه هم‌زمان فعال نباشند.

تنظیمات CDN با سرور هماهنگ باشد.

فایل htaccess بدون بررسی تغییر نکند.

بعد از تغییر دامنه تمام URLها تست شوند.

قبل از تغییرات مهم نسخه پشتیبان تهیه شود.

 

مدیریت منظم URLها باعث می‌شود احتمال ایجاد حلقه‌های ریدایرکت کاهش پیدا کند.

 

جمع‌بندی

 

خطای Too Many Redirects معمولاً نتیجه وجود یک چرخه در قوانین انتقال URL است. تنظیمات اشتباه HTTPS، ناهماهنگی آدرس‌های وردپرس، افزونه‌های ریدایرکت، افزونه‌های کش و امنیتی، فایل htaccess و تنظیمات CDN از مهم‌ترین عوامل ایجاد این مشکل هستند.

 

برای حل این خطا ابتدا باید مسیر انتقال درخواست مشخص شود و سپس قوانین متناقض حذف یا اصلاح شوند. بررسی تنظیمات SSL و URLهای اصلی وردپرس نیز اهمیت زیادی دارد.

 

مدیریت صحیح ریدایرکت‌ها علاوه بر رفع خطاهای دسترسی، به حفظ ساختار مناسب URLها، بهبود تجربه کاربری و دسترسی بهتر موتورهای جستجو به صفحات سایت کمک می‌کند.