SHET24

رفع ارور ERR_TOO_MANY_REDIRECTS در وردپرس

رفع ارور ERR_TOO_MANY_REDIRECTS در وردپرس

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

در ادامه از کارهای ساده مثل پاک‌کردن کش شروع می‌کنیم و بعد سراغ تنظیمات فنی‌تر می‌ریم. لازم نیست همه روش‌ها رو یک‌جا انجام بدید؛ هر مرحله رو امتحان کنید و بعد سایت رو دوباره باز کنید تا مشخص بشه حلقه ریدایرکت از کجا ساخته شده.

ارور ERR_TOO_MANY_REDIRECTS چیه

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

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

آموزش رفع خطای ERR_TOO_MANY_REDIRECTS

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

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

کش مرورگرتون رو خالی کنید

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

در گوگل کروم روی منوی سه‌نقطه کلیک کنید و گزینه Delete browsing data رو بزنید. بازه زمانی رو انتخاب کنید و گزینه‌های مربوط به Cookies and other site data و Cached images and files رو علامت بزنید.

پاک کردن کش در مرورگر کروم
پاک کردن کش در مرورگر کروم

حالا روی Delete data کلیک کنید. یادتون باشه پاک‌کردن همه کوکی‌ها ممکنه شما رو از حساب‌هایی که در مرورگر باز هستن خارج کنه؛ پس اگه امکانش رو دارید، فقط داده‌های دامنه سایتتون رو حذف کنید.

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

اگه از مک و Safari استفاده می‌کنید، از نوار بالای صفحه وارد History بشید و Clear History رو انتخاب کنید. بعد بازه زمانی موردنظرتون رو مشخص کنید و پاک‌کردن تاریخچه رو تأیید کنید.

در فایرفاکس روی منوی سه‌خط کلیک کنید، وارد History بشید و Clear Recent History رو بزنید. بازه زمانی و داده‌هایی که می‌خواید پاک بشن رو انتخاب کنید و در پایان روی Clear کلیک کنید.

پاک کردن کش در مرورگر firefox
پاک کردن کش در مرورگر firefox

تنظیمات URL رو بررسی کنید

اگه پاک‌کردن کش کمکی نکرد، نشانی وردپرس و نشانی سایت رو بررسی کنید. پروتکل، دامنه و حالت www در این آدرس‌ها باید با تنظیمات واقعی سایت هماهنگ باشن. این کار رو می‌تونید از پیشخوان یا فایل wp-config.php انجام بدید.

تنظیمات URL رو به‌صورت دستی تغییر بدید

اگه حلقه ریدایرکت اجازه ورود به پیشخوان رو نمی‌ده، می‌تونید آدرس‌ها رو در فایل wp-config.php مشخص کنید. برای دسترسی به این فایل وارد کنترل‌پنل هاست بشید یا با FTP به فایل‌های سایت وصل بشید. قبل از ویرایش هم یک نسخه پشتیبان از فایل بگیرید.

در کنترل‌پنل هاست، File Manager رو باز کنید. بعد وارد دایرکتوری public_html بشید، فایل wp-config.php رو پیدا کنید و گزینه Edit رو بزنید.

دو خط زیر رو پیش از خط پایانی فایل اضافه کنید:

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

به‌جای https://example.com آدرس دقیق سایتتون رو بذارید. پروتکل https و حالت www باید با دامنه اصلی سایت یکی باشه. بعد از ذخیره فایل، سایت رو دوباره بررسی کنید. وقتی این دو مقدار در wp-config.php تعریف می‌شن، فیلدهای متناظر در پیشخوان قابل‌ویرایش نیستن.

تنظیمات URL رو از پیشخوان وردپرس بررسی کنید

اگه به پیشخوان دسترسی دارید، برای بررسی URLها وارد «تنظیمات ← عمومی» بشید. نشانی وردپرس و نشانی سایت رو با دامنه اصلی مقایسه کنید و مطمئن بشید پروتکل و حالت www در هر دو درست تنظیم شده.

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

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

اگه هر دو نشانی درست بودن و خطا ادامه داشت، تنظیمات HTTPS و ریدایرکت‌های سرور رو بررسی کنید.

اختلال گواهی SSL و پروتکل HTTPS رو بررسی کنید

یکی از علت‌های رایج حلقه ریدایرکت، هماهنگ‌نبودن HTTP و HTTPS هست. ممکنه SSL روی هاست فعال باشه، ولی آدرس وردپرس هنوز با http ذخیره شده باشه. گاهی هم وردپرس، سرور، CDN و افزونه هرکدوم جداگانه کاربر رو به HTTPS هدایت می‌کنن و این قوانین با هم تداخل پیدا می‌کنن. تنظیمات SSL هاست، آدرس‌های وردپرس، CDN و قوانین فایل .htaccess رو بررسی کنید و ریدایرکت‌های تکراری رو بردارید. افزونه Really Simple Security هم ابزارهای مربوط به SSL رو در اختیارتون می‌ذاره، ولی نصب افزونه جای اصلاح تنظیمات اشتباه هاست یا CDN رو نمی‌گیره.

افزونه Really Simple Security
افزونه Really Simple Security

کش وردپرس رو خالی کنید

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

یکی از افزونه‌هایی که برای مدیریت کش می‌تونید استفاده کنید، WP Fastest Cache یا افزونه ایرانی رخش هست. اگه این افزونه از قبل روی سایتتون فعاله، پاک‌کردن کش اون می‌تونه به آزمایش تغییرات کمک کنه.

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

بعد از فعال‌شدن WP Fastest Cache، گزینه اون به منوی پیشخوان اضافه می‌شه. صفحه افزونه رو باز کنید، وارد بخش حذف کش بشید و کش ذخیره‌شده رو پاک کنید.

پاک کردن کش در افزونه رخش
پاک کردن کش در افزونه رخش

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

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

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

اگه به پیشخوان دسترسی دارید، این کار رو از صفحه افزونه‌ها انجام بدید. اگه پیشخوان باز نمی‌شه، می‌تونید پوشه افزونه‌ها رو از طریق FTP موقتاً تغییر نام بدید.

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

با FileZilla به هاست وصل بشید و در بخش Remote Site وارد پوشه wp_content بشید. روی پوشه plugins کلیک راست کنید، Rename رو بزنید و نام اون رو موقتاً تغییر بدید.

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

فایل .htaccess رو موقتاً غیرفعال کنید

فایل .htaccess یک فایل تنظیمات سرور Apache هست و ممکنه قانون ریدایرکت اشتباهی داخلش نوشته شده باشه. این روش برای Nginx کاربرد نداره و تنظیمات اون باید در پیکربندی خود سرور بررسی بشه.

در File Manager هاست وارد public_html بشید. نمایش فایل‌های مخفی رو فعال کنید، روی فایل .htaccess کلیک راست کنید و بعد از گرفتن نسخه پشتیبان، نام اون رو موقتاً تغییر بدید.

حالا سایت رو بررسی کنید. اگه خطا برطرف شد، یکی از قوانین داخل .htaccess حلقه ریدایرکت ساخته. فایل قبلی رو حذف نکنید، چون ممکنه قوانین امنیتی، کش یا تنظیمات اختصاصی هاست داخل اون باشه.

صفحه پیوندهای یکتا
صفحه پیوندهای یکتا

قبل از هر تغییری از فایل و اطلاعات سایت نسخه پشتیبان بگیرید. اگه به پیشخوان دسترسی دارید، بعد از تغییر نام فایل وارد «تنظیمات ← پیوندهای یکتا» بشید و روی «ذخیره تغییرات» بزنید تا وردپرس قوانین استاندارد رو دوباره بسازه.

اگه لازم شد فایل رو دستی بسازید و سایتتون روی Apache با وردپرس نصب‌شده در ریشه دامنه کار می‌کنه، می‌تونید از قوانین استاندارد زیر استفاده کنید. تنظیمات اختصاصی هاست یا افزونه‌ها باید جداگانه بررسی و در صورت نیاز دوباره اضافه بشن:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

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

جمع‌بندی

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

سوالات متداول

ارور ERR_TOO_MANY_REDIRECTS یعنی چی؟

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

اگه به پیشخوان وردپرس دسترسی نداشته باشم، چطور خطا رو برطرف کنم؟

می‌تونید از File Manager هاست یا FTP کمک بگیرید. آدرس سایت رو در فایل wp-config.php بررسی کنید، پوشه plugins رو موقتاً تغییر نام بدید و بعد از گرفتن نسخه پشتیبان، فایل .htaccess رو هم آزمایش کنید.

آیا پاک‌کردن کش همیشه این خطا رو برطرف می‌کنه؟

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

چطور بفهمم کدوم افزونه باعث حلقه ریدایرکت شده؟

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

آیا روش تغییر فایل .htaccess برای همه سرورها کاربرد داره؟

نه، فایل .htaccess مربوط به سرور Apache هست. اگه سایتتون روی Nginx کار می‌کنه، باید قوانین ریدایرکت رو در پیکربندی همون سرور بررسی کنید یا از پشتیبانی هاست کمک بگیرید.

نظر شما در این مورد چیه؟

    پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
    تیم میهن وردپرس
    پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
    تیم میهن وردپرسخارج از ساعات کاری هستیم؛ دستیار هوش مصنوعی پاسخگوی شماست.هوش مصنوعی

    در حال بارگذاری...

    هر سوالی دارید بپرسید.پاسخگوی شما هستیم.