نحوه رفع خطای err_too_many_redirects در وردپرس
ارور err_too_many_redirects وردپرس یکی دیگر از خطاهای رایجی است که احتمالا برای یک بار هم که شده آن را تجربه کردید. این خطا همانطور که از معنا و مفهومش مشخص است به این معنی است که ریدایرکتهای زیادی در حال رخ دادن است. حال منظور از ریدایرکت چیست؟
درست حدس زدید؛ منظور همان ریدایرکت صفحات به یکدیگر هستند. که احتمالا در این بین اشتباها ریدایرکت را انجام دادید یا اینکه یک خطای برنامه نویسی یا در حالت بدتر تداخلی که بین افزونهها به وجود آمده، باعث شده تا یکی از صفحات یا تمام صفحات سایت شما در یک حلقه بی پایان از ریدایرکت قرار بگیرند.
در این حالت بازدیدکنندگان به جای اینکه به صفحهی مد نظرشان دسترسی داشته باشند، همچون ترن هوایی وحشتناک در حال پاس داده شدن به صفحات مختلف هستند و تا زمانی که پنجره مرورگر را نبندند این چرخه بی پایان تکرار خواهد شد. مگر اینکه در نهایت مقدار درخواستها برای ریدایرکت به قدری زیاد باشد(منظور تعداد افراد لحظهای آنلاین است) که سایت خطای too many requests بدهد و از دسترس خارج شود.
حال در ادامه این مقاله قصد دارم به چگونگی برطرف کردن خطای err_too_many_redirects در وردپرس بپردازم و راهکارهایی که با استفاده از آن میتوانید ارور ریدایرکت در وردپرس را برطرف کنید را با هم بررسی کنیم.
خطای err_too_many_redirects در وردپرس چیست؟
اول از همه بدانید که خطای err_too_many_redirects فقط مختص به وردپرس نیست. این مشکل میتواند در سیستمهای مختلفی وجود داشته باشد که طبق بررسی که داشتم ERR_TOO_MANY_REDIRECTS IIS یکی از بیشترین مواردی است که بعد از وردپرس کاربران آن را جستجو میکنند.
زمانی که این خطا رخ دهد بسته به اینکه از کدام مرورگر استفاده میکنید ظاهر خطا متفاوت خواهد بود. به عنوان نمونه همانطور که در تصویر بالا میبینید در مرورگر گوگل کروم به شکل نشان داده شده قابل مشاهده است.
ما به عنوان مدیر یک سایت ممکن است دلایل زیادی برای ریدایرکت یک یا چند صفحه به صفحات دیگر را داشته باشیم. از جمله آنها میتوان به حذف کامل یک صفحه یا صفحاتی با محتوای یکسان اشاره کرد. گاهی اوقات نیاز ما برای ریدایرکت طوری است که به دلیل حجم بالا باید از روش رجکس برای ریدایرکت استفاده کنیم.
همانطور هم که در مقاله ریدایرکت وردپرس و انواع آن ذکر کردم این نوع ریدایرکت به این صورت است که شما یک فرمول خاصی را برای ساختارهای ثابتی از صفحات تعیین میکنید و ریدایرکت برای آنها انجام میگیرد.
به عنوان نمونه ممکن است که شما ساختار پیشفرض برچسبها در وردپرس که با پیشوند tag هستند را بخواهید به ساختار دیگری مثل lable تغییر. در این حالت آدرس صفحات جز در این دو عبارت در URL تغییری ندارند. پس لزومی ندارد که لینک همه صفحات برچسب را از سایت خود استخراج کرده و برای آنها ریدایرکت جدا تعریف کنید. بلکه میتوانید با یک کد ساده چند خطی این کار را انجام دهید.
حال در این بین یک اشتباه ممکن است رخ داده باشد که ریدایرکتهای زیادی صورت گیرد. موضوع استفاده از ریدایرکت رجکس به قدری حساس است که حتی یک کاراکتر اسلش که در انتهای صفحات قرار دارد میتواند وضعیت را تغییر دهد. همین موارد کوچک موجب میشود که یک صفحه مدام در حالت ریدایرکت به صفحات دیگر باشد و در نهایت با خطای too many redirects در وردپرس مواجه شویم.
البته موضوع فقط به ریدایرکت مربوط نیست و در برخی مواقع هم خطاهای برنامه نویسی، کش مرورگر، خطاهایی در شرکت ارائه دهنده اینترنت و تداخل افزونه میتوانند در آن دخیل باشند. در ادامه بیشتر به معرفی هر کدام میپردازم.
آموزش رفع ارور err too many redirects در وردپرس
حال که با چرایی و دلایل مختلف ارور ریدایرکت در وردپرس مواجه شدید، در ادامه به معرفی روشهای مختلفی که برای رفع این خطا وجود دارد میپردازم. از آنجایی که این خطا طوری است که سختترین کار برای رفع آن شناسایی جایی است که مشکل رخ داده است، لذا سعی کنید دلیل خطا را متناسب با مراحلی که در مقاله توضیح دادم بررسی کنید.
در صورتی که هر مرحله برای شما جواب نداد، روشهای دیگر را به مرور طی کنید تا بالاخره جایی که باعث بروز این خطا شده را پیدا کنید. بیایید از قدم صفر شرع کنیم!
قدم صفر: دست های پشت پرده را بررسی کنید!
قبل از اینکه اولین قدم را انجام دهید، باید دلایلی که باعث ایجاد این مشکل در سیستم شما شده است، را بررسی کنید. در بیشتر مواقع این مشکل میتواند از سمت خود شما باشد که تغییراتی در کوکی و دادههای مرورگر ایجاد شده است.
برای این منظور سه راهکار زیر را تست کنید:
- اینترنت خود را بررسی کنید: همانطور که میدانید ما در کشوری هستیم که روزانه دهها و صدها مشکل برای ما پیش میآید که راستش را بخواهید بیشترین دلیل آن گاها به اینترنت و شرکت ISP برمیگردد. لذا برای اینکه مطمئن شوید مشکل از سمت شرکت مخابراتی نیست، مودم خود را برای چند دقیقهای خاموش کنید و مجددا تست کنید.
- کوکی مرورگر را پاک کنید: اگر با روش قبل نتیجهای حاصل نشد، کوکی مرورگر خود را پاک کنید. برای این منظور کافی است به تنظیمات مرورگر رفته و کوکی را برای سایت و دامنه مد نظر پاک کنید. پیش از این چگونگی پاک کردن کش مرورگر را در وبلاگ سون هاست آموزش دادیم.
راهکار سوم این است که باید ببینید که اصلا این حلقه ریدایرکت چرا در حال تکرار شدن است. ممکن است بتوانید با یک شناخت حدودی آن را پیدا کنید. لذا به کمک سایت Redirect Checker نیاز خواهید داشت. برای این منظور وارد این سایت شده و سپس مشابه تصویر زیر آدرس صفحهای که ریدایرکت انجام میگیرد را در کادر وارد کرده و روی دکمه Analyse کلیک کنید.
پس از بررسی صفحه یک صفحه مشکی نمایش داده میشود که حاوی نوع ریدایرکت و اطلاعاتی از صفحات مبدا و مقصد است. اگر در حین ریدایرکت چند صفحه در حال ریدایرکت شدن به یکدیگر باشند نیز برای این سایت مشخص شده و در حالتی که یک صفحه واسط در این بین باعث ریدایرکت در یک حلقه بی تکرار شده باشد مشخص خواهد شد.
اگر با این سه راهکار مشکل حل نشد، حالا باید به منظور بررسی تخصصی به سراغ وردپرس رفته و مشکل را ریشهای حل کنید. پس بیایید که اولین گامها را برداریم.
قدم اول: بررسی آدرس وردپرس در تنظیمات و دیتابیس
اگر به تازگی تغییراتی در ساختار وردپرس خود داده باشید ممکن است دلیل ریدایرکت شدن از همین جا شروع شده باشد. این موضوع میتواند بعد از پاک کردن افزونههای HTTPS و SSL که پیش از این زیاد استفاده میشد، باشند. بنابراین مشابه تصویر زیر به منوی تنظیمات> عمومی در پیشخوان وردپرس بروید.
حال همانطور که در تصویر میبینید دو فیلدی که در تصویر مشخص شده را به شرح زیر کامل کنید:
- نشانی وردپرس: در این فیلد آدرس دامنه خود را وارد کنید. در صورتی که از SSL در سایت خود استفاده میکنید، ابتدای آدرس را با پروتکل امن //:https آغاز کنید. سپس اگر از ساختار www استفاده میکنید، آن را نیز وارد کرده و در نهایت آدرس دامنه و پسوند دامنه را بزنید. همچنین دقت کنید که در انتهای فیلد نباشد از اسلش(/) استفاده کنید.
- نشانی سایت: همان آدرسی که در فیلد قبل وارد کردید را کپی کرده و در همینجا وارد کنید.
در نهایت روی دکمه ذخیره تنظیمات کلیک کرده و سایت را بررسی کنید.
اما ممکن است که خطای ریدایرکت در وردپرس به صورت کلی اتفاق افتاده باشد و دسترسی به پیشخوان وردپرس نداشته باشید. برای این منظور میتوانید یک قطعه کد را درون فایل wp-config.php قرار دهید. پس قبل از هر چیزی وارد هاست خود شده و سپس مشابه تصویر زیر روی گزینه File Manager کلیک کنید.
سپس به مسیر public_html رفته و در مسیری که وردپرس را نصب کردید به دنبال فایل wp-config.php بگردید. حال روی گزینه EDIT در بالای صفحه کلیک کنید تا صفحه ویرایش این فایل برایتان باز شود. میتوانید از اکانت FTP هم برای ویرایش این فایل استفاده کنید.
حالا درون فایل به دنبال خطی باشید که عبارت /* That's all, stop editing! Happy blogging. */
در آن قرار دارد و درست در بالای این خط قطعه کد زیر را قرار دهید:
define('WP_HOME','https://site.com');
define('WP_SITEURL','https://site.com');
دقت کنید که در دو خط بالا به جای site.com باید آدرس دامنه خود را وارد کنید. همچنین اگر از پروتکل امن HTTPS استفاده نمیکنید آن را به HTTP تغییر داده و اصلاح کنید. حالا مجددا بررسی کرده و ببینید که آیا خطا برطرف شده است یا نه؛ در غیر این صورت به سراغ راهکار بعدی بروید.
قدم دوم: بررسی پیوند یکتا وردپرس
در موارد بسیار نادری ممکن است این خطا از تنظیمات پیوند یکتا وردپرس باشد. برای اینکه مطمئن شویم مشکل از اینجا نیست به منوی تنظیمات> پیوندهای یکتا در پیشخوان وردپرس رفته و بدون اینکه تغییری در ساختار پیوند یکتا ایجاد دهید، یک بار روی دکمه ذخیره تغییرات کلیک کنید.
جهت کسب اطلاعات بیشتر در این خصوص پیشنهاد میکنم مقاله بهترین ساختار پیوند یکتا در وردپرس را بررسی کنید.
قدم سوم: بررسی پروتکل HTTPS
دلیل بعدی که میتواند موجب ایجاد این ریدایرکت در کل سایت شده باشد اشتباه در کانفیگ و نصب گواهینامه SSL است. برای اینکه مطمئن شوید مشکل از اینجا نیست این بار میتوانید به کمک ابزار Redirect mapper ایرادات پروتکل امن HTTPS را پیدا کنید.
هر خطایی که برای این پروتکل در گواهینامه سایت شما وجود داشته باشد توسط این ابزار مشخص شده و به شما نمایش داده میشود.
قدم چهارم: غیر فعال کردن افزونههای وردپرس
مثل اینکه افزونههای وردپرس قرار است پای ثابت ایجاد خطاهای مختلفی مثل err_too_many_redirects در سایت ما باشند. در برخی موارد که شخصا نیز آنها را تجربه کردم، تداخلی که بعد از آپیت یا نصب افزونه با دیگر افزونهها رخ داده باعث این مشکل شده است.
برای رفع مشکل در این حالت پیشنهاد میکنم که افزونههایی که حدس میزنید مشکل از سمت آنها باشد را غیرفعال کرده و به کمک ابزار redirect checker که معرفی کردم مجددا آدرسی که ریدایرکت روی آن انجام شده و خطا ایجاد میشد را بررسی کنید. دلیل اینکه توصیه میکنم از این ابزار استفاده کنید بخاطر همان قدم صفر است که ریدایرکتها در کوکی مرورگر ذخیره شده و ممکن است که مشکل شما حل شده باشد، اما چون در کوکی باقیمانده است، همچنان در مرورگر شما این خطا وجود دارد.
اگر به تازگی پس از نصب یا آپدیت یک افزونه این مشکل رخ داده باشد کارتان سادهتر خواهد بود. این روند را همینطور ادامه داده و تا جایی پیش بروید که دیگر افزونهای برای غیرفعال کردن نمانده باشد. در این صورت مشکلات از سمت افزونهها نبوده و باید به سراغ بررسی قالب سایت خود بروید.
امیدواریم که مطلب نحوه رفع خطای err_too_many_redirects در وردپرس رضایت شما را به همراه داشته باشد. وبلاگ سون هاست سرشار از مطالب آموزشی متنوع در مورد توسعه وب سایت شماست، پس حتما سری به بخش های مختلف آن بزنید. در انتها سوالات و پیشنهادات خود را از طریق درج کامنت به گوش ما برسانید. اگر علاقمند به مباحث فنی بیشتری هستید، حتما در انجمن سون هاست موضوع جدیدی را ایجاد کنید.
قدم پنجم: بررسی قالب وردپرس
معمولا احتمال اینکه مشکل از سمت قالب باشد بسیار ناچیز است. اما در شرایطی که شما یک قطعه کد خاصی را به فانکشن قالب اضافه کرده باشید یا تغییراتی در قالب داده باشید، میتواند دلیل ارور too many redirects wordpress همین مسئله باشد.
پس تنها کاری که باید انجام دهید این است که موقتا یکی از قالبهای پیشفرض وردپرس را فعال کنید. اگر با فعال کردن قالب دیگری صفحه سایت را به کمک ابزار redirect checker بررسی کردید و مشکل رفع شده بود، حالا باید قالب خود را بررسی کرده و ببینید که چرا ریدایرکت دارد از سمت قالب انجام میگیرد.
قدم ششم: بررسی تنظیمات کلودفلر یا سایر CDN ها
بسیاری از ما از جمله خود من، به خاطر موارد امنیتی و حملات دیداسی که روی سایتمان داریم مجبور به استفاده از کلودفلر یا دیگر CDN های رایج هستیم. در برخی مواقع میتواند مشکل از سمت همین شبکه CDN باشد.
به عنوان مثال زمانی که برای ریدایرکت و تغییر مسیر HTTP به HTTPS از کلودفلر استفاده میکنید این مشکل میتواند رخ دهد. این خطا زمانی که پیکربندی SSL روی حالت flexible قرار دارد رخ خواهد داد که به دلیل تداخلی که روی SSL هاست وجود دارد میتواند باشد. برای اطمسنان از این موضوع کافی است آن را به حالت دیگری مثل FULL تغییر دهید.
یا اینکه اگر از ابزار Page Rules کلودفلر استفاده میکنید و برای برخی از صفحات سایتتان از Forwarding URL استفاده میکنید، حلقههایی که وظیفه تغییر مسیر را دارند اشتباه ایجاد شده و همین موضوع باعث میشود که یک چرخه بی پایان از ریدایرکت در وردپرس ایجاد شود.
قدم هفتم: فایل htaccess. را فراموش نکنید
اینکه بررسی این مورد را برای انتهای مقاله قرار دادم دلیل داشت، چرا که در قدم دوم به معرفی انجام تغییراتی در صفحه پیوندهای یکتا اشاره کردم. با انجام این کار فایل htaccess. در وردپرس حذف شده و مجددا از نو ایجاد میشود. اگر هم پیش از این کدی به این فایل اضافه کرده باشید، کدها در جای خود باقی خواهند ماند.
اما در برخی مواقع ممکن است به هر دلیلی(مثل کانفیگ اشتباه در سرور) این فایل از نو ساخته نشود، در حالی که مشکل شما از سمت همین فایل کوچک باشد. پس برای این منظور وارد هاست خود شده و پس از اینکه به مسیر public_html در file manager هاست مراجعه کردید، نام این فایل را به نام دیگری تغییر دهید.
سپس به پیشخوان وردپرس رفته و یک بار روی دکمه ذخیره تغییرات کلیک کنید تا این فایل مجددا ساخته شود و مشکل را بررسی کنید. در صورتی که دسترسی به پشخوان برای این کار ندارید، میتوانید کدهای زیر را از طریق ویرایشگر فایل هاست یا ابزار FTP درون این فایل قرار داده و ذخیره کنید.
# 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
توجه کنید که اگر با قرار دادن کدهای بالا مشکل برطرف شد و به پیشخوان وردپرس دسترسی داشتید، یک بار به منوی پیوندهای یکتا مراجعه کرده و روی دکمه ذخیره تغییرات کلیک کنید.
هنوز هم مشکلی دارید؟
اگر با انجام کلیه موارد بالا مشکل شما برطرف نشد، پیشنهاد میکنم از یک فرد متخصص برای این کار کمک بگیرید. میتوانید از پشتیبانی شرکت هاستینگ خود نیز برای این موضوع کمک بخواهید، چرا که در برخی مواقع این مشکلات میتواند به دلیل کانفیگ سرور و خطایی که اشتباها در آن ایجاد شده باشد.
کافی است کلیه کارهایی که انجام دادید را اعلام کنید تا دیگر راهکارهای باقی مانده را انجام دهند. در پایان اگر هر سوال یا مشکلی در خصوص این آموزش دارید، از بخش نظرات ارسال کنید تا با هم به گفتگو بپردازیم.