ارور Err_Too_Many_Redirectcs با نام Redirect Loop نیز شناخته میشود و یکی از رایجترین خطاهایی است که در سایتهای وردپرسی نشان داده میشود.
این خطا بیان میکند که یک سایت در یک حلقه ریدایرکت گیر کرده است و دائماً از آدرسی به آدرس دیگر (مثلاً از URL1 به URL2 و برعکس از URL2 به URL1) میرود. این خطا در اصل زمانی به بازدیدکننده نشان داده میشود که تعداد ریدایرکتها ( هدایت به آدرس دیگر) بسیار زیاد و تکراری شده باشد.
البته این خطا مخصوص سایتهای وردپرس نیست و ممکن است در سایتهایی غیر وردپرسی هم در اثر تغییر تنظیمات، وجود مشکل در تنظیمات هاست و سرور و مشکلات قالب و افزونهها به وجود بیاید.
چرا ارور Err_Too_Many_Redirectcs را مشاهده میکنیم؟
هرچند دلیل کاملاً مشخصی برای بروز این خطا وجود ندارد، اما معمولاً نتیجه پیکربندی نادرست در تنظیمات وردپرس و یا تنظیمات نادرست تعدادی از پلاگینها است. همچنین ناسازگاری قالب با تعدادی از پلاگینها نیز میتواند دلیل بروز این ارور باشد.
در واقع سایت کاربر آنقدر از آدرسی به آدرس دیگر هدایت میشود، که مرورگر اصلاً نمیداند کدام آدرس را به نمایش بگذارد و باعث بروز خطا میشود. خطای Err_Too_Many_Redirectcs بر خلاف بسیاری از خطاها، خود به خود برطرف نخواهد شد. اما شیوه برطرف کردن آن بسیار ساده است و همه کاربران میتوانند به راحتی و با بررسی بخشهایی از وردپرس آن را رفع کنند.
حل ارور Err_Too_Many_Redirectcs
برای برطرف کردن ارور Err_Too_Many_Redirectcs باید موارد مختلفی را بررسی کنید. برای رفع این ارور باید مراحل و دستورالعملهای زیر را انجام دهید:
حذف کوکی و کش مرورگر
اولین و اصلیترین کار برای برطرف کردن این خطا در انواع مرورگرها، حذف حافظه پنهان و کوکیهای سایت است. وجود اطلاعات معیوب، مخرب و اشتباه در کوکی و یا وجود کوکیهای بسیار قدیمی میتواند به بروز ارور Err_Too_Many_Redirectcs منجر شود.
پاک کردن کش و کوکیها مشکل را برطرف میکند اما اگر دوباره و در زمان دیگری از سایت بازدید داشته باشید، ممکن است که خطا به نمایش در بیاید و یا سایر کاربران دیگر هم آن را مشاهده کنند. پس باید به گونهای کوکیها حذف شوند که پس از هر بازدید نمایش داده نشوند و به صورت اتوماتیک حذف شوند.
برای حذف کوکیها از مرورگر گوگل کروم میتوانید به راحتی بر روی ۳ نقطه در گوشه سمت راست بالا کلیک کنید و سپس در قسمت تنظیمات روی گزینه پیشرفته کلیک کنید.
در قسمت بعد وارد قسمت تنظیمات محتوا شده و روی کوکیها کلیک کنید. در مرحله بعدی = روی گزینه مشاهده تمام کوکیها و دادههای سایت کلیک کنید. از آنجا میتوانید دامنهای که باعث بروز خطا شده است را پیدا کنید. سپس ميتوانید تمام کوکیها را حذف کنید.
برای حذف کوکیها از مرورگر فایرفاکس نیز باید به قسمت تنظیمات بروید و از آنجا وارد قسمت حریم خصوصی و امنیت شوید و سپس مدیریت دادهها را انتخاب کنید. در اینجا قادر خواهید بود تمام کوکیها را حذف کنید.
حذف کش وردپرس
بهرهگیری از کش (cache) در وردپرس، یک روش بسیار موثر برای بهینهسازی سرعت سایت است. قدیمی شدن نسخههای کش، میتواند عاملی برای بروز ارور Err_Too_Many_Redirectcs باشد. در بعضی از موارد حتی با وجود بروز این ارور، کاربر میتواند به پنل مدیریتی سایت وردپرسی خود دسترسی داشته باشد.
با ورود به پنل ادمین و در قسمت تنظیمات، وارد گزینه افزونه کش شوید و دکمه پاکسازی را بزنید تا به راحتی کش سایت حذف و خطا برطرف شود.
فرایند حذف کردن کش، در محبوبترین پلاگینهای حذف کش مانند WP Super Cache، WP Rocket و W3 Total Cache کاملاً شبیه به هم هستند. مراحل حذف به صورتی است که ابتدا وارد داشبورد وردپرس میشوید و سپس در قسمت تنظیمات بر روی WP Super Cache کلیک میکنید.
در مرحله بعدی روی گزینه حذف کش کلیک کنید تا کشهای ذخیره شده پاک شوند. همچنین در صورتی که از CDNها (شبکههای تحویل یا توزیع محتوا) استفاده میکنید، میتوانید کش مربوط به آنها را نیز پاک کنید و یا حتی به صورت موقت آنها را غیرفعال کنید تا مشکل برطرف شود.
بررسی فایل htaccess.
در صورتی که از وب سرور آپاچی (Apache) استفاده میکنید، بهتر است که فایل .htaccess را بررسی کنید. گاهی ممکن است که پس از ویرایش این فایل، دسترسی به سایت غیرممکن شود و ارور Err_Too_Many_Redirectcs نمایش داده شود.
برای رفع مشکل میتوانید از طریق FTP یا SSH وارد سایت شوید و سپس فایل .htaccess را تغییر نام دهید و مثلا نام آن را .htaccess_old بگذارید.
با این کار در اصل یک فایل پشتیبانی از .htaccess قدیمی خود تهیه میکنید. برای ساختن دوباره این فایل میتوانید به سادگی صفحهی تنظیمات پیوندهای یکتا را دوباره در وردپرس ذخیره کنید.
با این حال اگر با ارور Err_Too_Many_Redirectcs مواجه شوید، به احتمال زیاد به پنل مدیریتی وردپرس خود دسترسی نخواهید داشت و باید از طریق دیگری عمل کنید. برای این کار میتوانید یک فایل .htaccess جدید بسازید و محتوای زیر را وارد آن کنید
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
پس از وارد کردن این محتوا به فایل .htaccess آن را به سرور خود آپلود کنید. با این کار ارور از بین خواهد رفت.
بررسی پلاگینها
در صورتی که راه حلهای نامبرده نتوانستند مشکل را برطرف کنند، احتمالاً تعدادی از پلاگینها مشکلساز هستند.
همانطور که گفته شد تداخل عملکرد تعدادی از پلاگینها با قالب یا با همدیگر میتواند عامل ایجاد این خطا شود. پلاگینهای زیادی وجود دارند که قابلیتهای ریدایرکت ارائه میکنند که ممکن است با دیگر قوانین ریدایرکت در پیکربندی وب سرور شما مغایرت داشته باشند. یک راه ساده برای رفع این مشکل غیرفعال کردن افزونههایی است که به تازگی نصب و یا بهروزرسانی شدهاند.
در صورتی که از افزونه جدید یا به روز شده استفاده نمیکنید، میتوانید به صورت موقت نام دایرکتوری پلاگین را تغییر بدهید. به عنوان مثال نام آن را Plugins_disabled بگذارید.
زمانی که نام دایرکتوری پلاگین را تغییر دادید سعی کنید دوباره وجود خطای Err_Too_Many_Redirectcs را بررسی کنید. در صورتی که خطا هنوز هم وجود داشت، مشکل از هیچ کدام از پلاگینها نیست. اگر بعد از تغییر نام دایرکتوری پلاگین، خطا از بین رفت پس مشکل قطعاً از پلاگین است.
برای آنکه مطمئن شویم که مشکل از کدام پلاگین است باید نام تمام آنها را مجددا فعال کنید و سپس از ابتدا نام دایرکتوری هر کدام را تک به تک تغییر دهید، تا پلاگینی که مسئول ایجاد خطا بوده است پیدا شود. توجه داشته باشید که برای هر پلاگین باید خطای سایت را بررسی کنید تا بتوانید منبع ارور را پیدا کنید.
HTTPS سایت را بررسی کنید
یکی دیگر از دلایل وجود این خطا پیکربندی اشتباه قوانین ریدایرکت HTTPS است. در صورتی که از سرور آپاچی استفاده میکنید، میتوانید به راحتی تمام ترافیک HTTPS خود را به HTTP ریدایرکت کنید. برای این کار کافی است که کد زیر را به فایل .htaccess اضافه کنید.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
این روش فقط مخصوص سرور آپاچی است و در صورتی که از سرور دیگری مانند ان جی اینکس (Nginx) استفاده میکنید، روش آن فرق میکند و برای این انتقال ریدایرکتها کافی است که کد زیر را به فایل پیکربندی Nginx اضافه کنید .
server { listen 80; server_name domain.com www.domain.com; return 301 https://domain.com$request_uri; }
احتمالا از تعداد بسیار زیادی ریدایرکت HTTPS استفاده میکنید. با استفاده از ابزار Patrick Sexton’s Redirect mapper نیز میتوانید به راحتی میتوانید سایت خود را بررسی کنید که از چه تعداد ریدایرکت استفاده میکند.
تنظیمات وردپرس را تغییر دهید
برای بررسی تنظیمات وردپرس باید وارد پنل مدیریت وردپرس شوید و به قسمت تنظیمات بروید و از آنجا وارد قسمت عمومی شوید. بعد از ورود به این قسمت باید مطمئن شوید که URL، وردپرس و سایت اطلاعات صحیحی دارند.
URL باید چیزی شبیه به http://mydomain.com باشد (باید مطمئن شوید که نام دامنه شما جایگزین mydomain.com شده است) زمانی که از درستی و صحت تنظیمات URL مطمئن شدید، میتوانید تنظیمات را ذخیره و دوباره سایت را بررسی کنید.
ممکن است نام دامنه سایت نیز با یک پیشوند (مثلاً WWW) در پیکربندی وب سرور پیکربندی شود. در صورتی که اینگونه بود سعی کنید پیشوند WWW را به پیکربندی وردپرس خود اضافه کنید و برای URL وردپرس و سایت خودتان از http://www.mydomain.com استفاده کنید.
در صورتی که ارور Err_Too_Many_Redirectcs مانع از دسترسی شما به پنل مدیریت وردپرس میشود، میتوانید تنظیمات URL را با ویرایش فایل پیکربندی wp-config.php به روز کنید.
برای این کار باید به دایرکتوری فایل وردپرس بروید. به عنوان مثال فایل home/user/public_html/wp-config.php/. را باز کنید و خطوط زیر را پیدا کنید
define(‘WP_HOME’,’http://mydomain.com’);
define(‘WP_SITEURL’,’http://mydomain.com’);
اگر پیکربندی وب سرور برای سایت شما پیشوند www تعریف کرده باشد، میتوانید http://www.mydomain.com را وارد کنید (فراموش نکنید که دامنه واقعی خودتان را به جای mydomain.com وارد کنید).
پس از آنکه از درستی و صحت اطلاعات اطمینان حاصل کردید، فایل را ذخیره کنید و دوباره سایت را بررسی کنید و ببینید که خطا از بین رفته است یا خیر.
نتیجه گیری
خطای Err_Too_Many_Redirectcs یکی از خطاهای رایج در سایتهای وردپرسی است که دقیقا منبع مشخصی ندارد و عموماً از اشتباهات ساده کاربران به وجود میآید. اما برطرف کردن آن همانگونه که در متن توضیح داده شده بسیار آسان و سریع انجام میشود. امیدواریم که آموزشهای داده شده مؤثر باشد و بتواند به خوبی این ارور را برطرف کند.