آموزش رفع خطای Too Many Redirects در وردپرس
اگر وبسایتتان از دسترسی خارج شده و مرورگرتان خطایی با مضمونی مشابه Too Many Redirects یا Redirect Loop را به شما نمایش میدهد، آموزش امروز مسترکد میتواند به شما در پیدا کردن دلیل این مشکل و رفع آن کمک کند. در ادامه به شرح این مشکل و دلایل اتفاق افتادن آن خواهیم پرداخت و سپس به همراه هم روش های رفع آن را بررسی میکنیم.
آنچه خطای Too Many Redirects یا Redirect Loop بیان میکند این است که وبسایت شما در یک حلقه ی ریدایرکت گیر کرده و دائما از آدرس A به B و برعکس هدایت میشود. این خطا دارای کد ارور 310 است ولی گاها ممکن است به شکل خطای 404 هم خودش را نشان بدهد. در واقع مشکلی که اتفاق افتاده این است که سایت شما آنقدر از آدرسی به آدرس دیگر هدایت میشود که مرورگر اصلا نمیداند چه چیزی را باید به نمایش بگذارد و اینجاست که این خطا اتفاق می افتد. روش رفع این مشکل معمولا ساده بوده و از وجود یک تنظیم اشتباه در سایت شما خبر میدهد که با بررسی چند بخش در وردپرس به سادگی میتوان آن را برطرف کرد. در ادامه به شرح دلایل این مشکل و نحوه ی رفع هر یک خواهیم پرداخت.
پیش از انجام هر کار دیگری …
لطفا قبل از اینکه هر اقدامی انجام بدهید، به این نکته توجه داشته باشید که مشکلی که برایتان پیش آمده ممکن است به سادگی با خالی کردن کش مرورگر و پاک کردن کوکی های آن برطرف شود. بنابراین حتما کش و کوکی های مرورگر را پاک کرده و سپس چند بار صفحه را ریفرش کنید. حل این مشکل ممکن است دقیقا به همین سادگی باشد.
آموزش پاک کردن کش مرورگر ها را در اینجا بخوانید
پاک کردن کش و کوکی های مرور ممکن است مشکل شما را برطرف کند ولی حتما قبول دارید که تکرار این کار در هر نوبت بازدید از سایتتان، بسیار خسته کننده و کمی هم مسخره خواهد بود! از طرفی هم نمیتوانید از بازدیدکنندگانتان انتظار انجام چنین کاری را داشته باشید. پس بهتر است کاری کنیم که در هر باز بازدید از سایت، کوکی های مربوط به سایت شما از مرورگر به طور اتوماتیک پاک شوند تا چنین مشکلی در بارگذاری سایت پی نیاید. برای انجام این کار کافی است که کد زیر را به فایل wp-config.php سایتتان اضافه کنید :
1 2 3 4 | define('ADMIN_COOKIE_PATH', '/'); define('COOKIE_DOMAIN', ''); define('COOKIEPATH', ''); define('SITECOOKIEPATH', ''); |
کد فوق را در بالای خط happy blogging قرار داده و تغییرات را ذخیره کنید. از این پس دیگر نیازی نیست برای پاک کردن کوکی های سایتتان از مرورگر، دست به کارهای سخت بزنید …
و اما برخی دلایل دیگری که ممکن است به گیر افتادن در حلقه ی ریدایرکت منجر شوند، به شرح زیر هستند :
- ممکن است نشانی وردپرس (URL) و نشانی سایت (URL) در تنظیمات سایتتان اشتباه باشند
- افزونه ای با اعمال تنظیمات نامناسب منجر به اتفاق افتادن ریدایرکت های پی در پی در سایت شده باشد
- اشتباهی در دستورات فایل .htaccess وجود داشته باشد
- تغییر آدرس دهی وردپرس شبکه از زیر فولدر به زیر دامنه منجر به ایجاد مشکل شده باشد
در ادامه موارد فوق را به طور کامل بررسی میکنیم.
اصلاح نشانی وردپرس و نشانی سایت در بخش تنظیمات
در بخش تنظیمات وردپرس در زیر منوی همگانی دو آپشن وجود دارد با عنوان نشانی وردپرس (URL) و نشانی سایت (URL). این آدرس ها همان آدرسی هستند که کاربران سایت شما برای مشاهده ی سایتتان آن را در مرورگر تایپ کرده و به سایت شما دسترسی پیدا میکنند. به هر دلیلی اگر این دو مقدار در بخش تنظیمات وردپرس، دقیقا یکسان نباشد، سایت شما در حلقه ی ریدایرکت گیر خواهد افتاد. بنابراین در صورتی که به ناحیه مدیریت دسترسی دارید، به این بخش مراجعه کرده و بررسی کنید که اولا هردوی این آدرس ها کاملا یکسان باشند، دوما در انتهای آنها اسلش وجود نداشته باشد و سوما در هیچ بخشی از آنها از حروف بزرگ استفاده نکرده باشید.
همانطور که در تصویر بالا هم مشخص است، هردوی این آدرس ها با http شروع شده اند. در صورتی که سایت شما از https استفاده میکند، هردوی این آدرس ها باید با https آغاز شوند. خلاصه اینطور بگوییم که این دو آدرس نباید هیچ تفاوتی با هم داشته باشند.
اگر از شبکه ی وردپرس استفاده میکنید و یا به ناحیه مدیریت وردپرس دسترسی ندارید تا بتوانید آدرس های فوق را بررسی کرده و اصلاح کنید، میتوانید در هاست خود فایل wp-config.php را جهت ویرایش باز کرده و کد زیر را در آن قرار دهید :
1 2 | define('WP_HOME','http://your-site.com'); define('WP_SITEURL','http://your-site.com'); |
کد فوق باید پیش از خط /* That’s all, stop editing! Happy blogging. */ قرار بگیرد و همچنین در کد بالا باید آدرس صحیح سایت خود را نیز قرار بدهید. (اگر این کد از قبل در این فایل موجود است، اطلاعات آن را با اطلاعات صحیح آدرس سایت خود جایگزین کنید و باز هم فراموش نکنید که هر دو آدرس دقیقا یکسان باشند)
خوب، حالا اگر مشکل از اینجا ناشی شده باشد، با خالی کردن کش مرورگر و یکی دو بار ریفرش باید مجددا دسترسی شما به سایتتان برقرار شود.
توجه داشته باشید که اضافه کردن این دو خط به فایل wp-config.php باعث میشود که دیگر نتوانید از طریق داشبورد وردپرس این دو تنظیم را تغییر دهید.
ریدایرکت از طریق افزونه ها
وردپرس و اکثر پلاگین های مخصوص ریدایرکت، برای اعمال ریدایرکت از تابع wp_redirect() استفاده کرده و با استفاده از آن ریدایرکت های 301 ایجاد میکنند. وردپرس به تنها به هیچ عنوان به شما اجازه نمیدهد که لینک های تکراری در آن ایجاد کنید. اما اگر فرضا نوشته ای را با استفاده از افزونه از قبل به آدرس دیگری هدایت کرده باشید و بعدا بخواهید مجددا با همان آدرس، محتوای دیگری در وردپرس ایجاد کنید، با توجه به اینکه در اینجا یک آدرس به دو مسیر اشاره میکند، این امر میتواند باعث سردرگمی مرورگر شده و موجب عدم بارگذاری محتوا شود. در اینجا اگر میدانید که چه افزونه ای بر روی سایتتان مسئول این کار است که به سادگی میتوانید آن را غیر فعال کنید اما در غیر این صورت لازم است که ابتدا همه ی افزونه های سایت را غیر فعال کرده و پس از برطرف شدن مشکل سایت، آنها را یکی یکی مجددا فعال کنید تا ببینید که مشکل از کدام یک از آنها ناشی شده بوده است.
آموزش غیر فعال کردن افزونه ها بدون دسترسی به مدیریت را در اینجا بخوانید
تغییر حالت وردپرس شبکه
فرض میکنیم که شما تنظیمات مالتی سایت خود را از حالت زیر دامنه به حالت زیر فولدر تغییر داده باشید. مثلا فرض کنید یک بلاگ تحت شبکه با آدرس blog.domain.com داشته باشید. پس از تغییر تنظیمات شبکه از حالت زیر دامنه به زیر فولدر، آدرس این سایت به شکل domain.com/blog خواهد شد. حالا چه مشکلی پیش می آید؟ فرض کنیم شما از قبل یک بلاگ در آدرس domain.com/blog بر روی وردپرس خود راه اندازی کرده بودید یا مثلا محتوایی با همین آدرس داشتید، حالا هم یک سایت تحت شبکه و هم محتوایی با این ادرس دارید. وقتی مرورگر بخواهد این آدرس را مورد دسترسی قرار دهد، نمیتواند تشخیص بدهد که باید بلاگ شما را بارگذاری کند و یا اینکه محتوای تحت شبکه را به شما نمایش دهد و دقیقا همینجاست که باز هم یا در Redirect Loop به دام می افتید و یا اینکه به خطای 404 برخورد میکنید. اینجا طبعا چند راه پیش رو دارید. اول اینکه تنظیمات شبکه را به حالت قبل برگردانید. دوم اینکه بلاگ همنام را از شبکه حذف کنید و سوم اینکه صفحه یا بخشی که نام تکراری دارد را از وردپرستان حذف کنید. تصمیم با شماست.
اصلاح فایل htaccess
گاهی ممکن است پس از ویرایش فایل htaccess دسترسی شما به سایتتان قطع شده باشد و با خطای Too Many Redirects مواجه شوید. در این حالت اگر میدانید که چه تنظیمات جدیدی روی این فایل اعمال کرده اید، میتوانید به سادگی این تغییرات را به حالت قبل بازگردانید.
در هاست خود به فایل htaccess تان سری بزنید و ببینید که آیا میتوانید در آن ریدایرکت های تکراری و اشتباه پیدا کنید؟ این مسئله میتواند دلیل بوجود آمدن مشکل شما باشد.
اگر مطمئن نیستید که چگونه باید دلیل مشکل را پیدا کنید و کدام بخش ها را لازم است از این فایل حذف کنید، میتوانید محتوای این فایل را به حالت پیشفرض وردپرس بازگردانی کنید.
برای بازگردانی فایل htaccess به حالت پیشفرض، ابتدا این فایل را دانلود کرده و در محل امنی روی کامپیوتر خود ذخیره کنید تا از آن یک بکاپ مطمئن داشته باشید. سپس فایل را اصلی را جهت ویرایش باز کرده و با مراجعه به سایت رسمی وردپرس، کد پیشفرض مرتبط با سایت خود را برای فایل htaccess انتخاب کرده و در آن قرار دهید.
مشاهده راهنمای محتوای پیشفرض فایل htaccess در سایت رسمی وردپرس
حالا چند بار صفحه ی وبسایت خود را ریفرش کنید تا از برطرف شدن مشکل اطمینان حاصل کنید. اگر مشکل برطرف شده بود، میتوانید دستورات ضروری این فایل را رفته رفته به آن بازگردانید تا منشا مشکل را پیدا کنید.
و در پایان …
همانطور که در ابتدا هم به آن اشاره کردیم و در طول این آموزش هم مشخص شد، عیب یابی خطای حلقه ی ریدایرکت عملا بسیار آسان است و این مشکل عموما از اشتباهات ساده ی خودمان سرچشمه میگیرد. در واقع فقط کافی است کمی تمرکز کنید تا بتوانید طی چند دقیقه منشا مشکل را پیدا کرده و بر اساس راهنمای بالا آن را برطرف کنید.
امیدواریم که این آموزش توانسته باشد مشکل وبسایت شما را برطرف کند.
سلام و دردود
سایت من فقط در موبایل به چندین سایت مشخص ریدایرکت می شود همه ی پلاگین ها را هم بررسی کردم نمیدونم مشکل از چیه!
یعنی وقتی سایت من را در موبایل با هر مرورگری باز می کنی به یه سری سایت هایی که اصلا معلوم نیستن چی هستن ریدایرکت می شود!
سلام
بر اساس توضیحتون به نظر میرسه که سایت شما آلوده شده و داره مورد سوء استفاده قرار میگیره. این مسئله معمولا به دلیل انجام ندادن موارد امنیتی در سایت، نصب افزونه ها یا قالب ها از مراجعی به غیر از مراجع اصلی، دریافت هسته وردپرس از مراجعی به غیر از ارائه کننده(های) رسمی و موارد از این دست پیش میاد.
سلام
من همه ی این موارد و انجام دادم ولی بازم مشکل حل نشد
البته وقتی بار اول فایل wp config رو ادیت کردم و کد هایی که گفتید رو وارد کردم مشکل رفع شد ولی به فاصله ی دو دقیقه دوباره باز ارور داد .
سلام
با توجه به توضیحاتتون بدون شک مشکل در کش و کوکی ها هست. سعی کنید این مسئله رو با یک مرورگر دیگه تست کنید ببینید مشکلتون برطرف میشه یا نه.
سلام لطفا جواب بدهید…. من پیوندهای یکتارو به نوشته تغییر دادم الان پیوندهایی رو که amp گرفتند رو خطای 404 میگیره…. خواهش میکنم کمک کنید…
سلام من همه ی این کارا رو انجام دادم ولی بازم نمیتونم از طریق گوشی وارد سایت دانشگاهم بشم. بقزه سایتا رو میتونم ولی برای این یه سایت ارور میده. کوکی ها رو هم کلا غیر فعال کردم
سلام
شما باید ببینید مشکل محدود به گوشیتونه یا اینکه سایتتون روی دیوایس های دیگه و مرورگرهای دیگه هم خطا داره. چون اگر محدود به گوشیتونه، احتمالا مشکل از گوشیه نه سایت … مثلا کش و …
سلام
مشکلم ازافزونه است ولی افزونه رو نیاز دارم برام آدرس صفحات رو عوض میکنه Custom Permalinks به نظرتون باید چیکار کنم