سایتت رو باز میکنی، ولی خبری از صفحه اصلی نیست.
بهجاش مرورگر یه خطای عجیب نشون میده: ERR_TOO_MANY_REDIRECTS
یا مثلاً مینویسه: This page isn’t working
چند بار رفرش میزنی، با مرورگرهای دیگه تست میکنی!
📣 اینجا محل دیده شدن تبلیغ شماست کلیک کن AD
حتی با حالت ناشناس هم تست میکنی، ولی باز همون داستانه.
اینجا یه نکته مهم وجود داره!
این خطا معمولاً به این معنی نیست که وردپرس کلاً خراب شده یا دیتابیس سایتت از بین رفته.
اغلب مشکل از اینجاست که سایت وارد یک حلقه ریدایرکت شده؛ یعنی یک درخواست مدام از یک آدرس به آدرس دیگه فرستاده میشه و دوباره برمیگرده سر جای اول.
مثلاً سایت میگه:
برو HTTPS. بعد یک تنظیم دیگه میگه: نه، برو HTTP.
و این داستان دوباره از اول شروع میشه.
مرورگر هم بعد از چند بار رفتوبرگشت میگه:
دیگه نمیتونم! 😅
و خطای ERR_TOO_MANY_REDIRECTS رو نمایش میده.
توی این آموزش رایا وردپرس میخایم دقیقاً همین مشکل رو باز کنیم؛ از سادهترین دلیلها شروع میکنیم و میرسیم به Cloudflare، SSL، wp-config.php، دیتابیس، افزونهها، .htaccess و تنظیمات سرور.
نه قرار نیست همهچیز رو یکدفعه دستکاری کنیم، نه قرار است با چند کد عجیب سایت رو وارد دردسر جدید کنیم.
اول علت رو پیدا میکنیم. بعد همون قسمت رو درست میکنیم.
خطای Too Many Redirects دقیقاً یعنی چی؟
بذار خیلی ساده بگم. فرض کن کاربر این آدرس رو وارد میکنه:
سرور جواب میده:
«این سایت HTTPS داره، برو به نسخه امن.»
پس میره به:
حالا یه تنظیم دیگه میگه:
«نه، این درخواست باید بره HTTP.»
و دوباره میره:
سرور باز میگه: «برو HTTPS.»
و همینطور ادامه پیدا میکنه. این همون چیزیه که بهش میگیم:
Redirect Loop یعنی حلقه ریدایرکت.
در واقع مشکل این نیست که یک ریدایرکت وجود داره.
مشکل اینه که ریدایرکتها به مقصد نهایی نمیرسن!
چرا وردپرس مدام ریدایرکت میشه؟
یک دلیل مشخص برای همه سایتها وجود نداره.
بعضی وقتها مشکل از HTTPS هست.
بعضی وقتها آدرس home و siteurl اشتباهه.
گاهی Cloudflare و هاست با هم هماهنگ نیستن.
گاهی یک افزونه Redirect یا SSL وارد بازی شده.
گاهی هم .htaccess یه قانون قدیمی داره که یادت رفته قبلاً اضافهاش کردی.
پس قبل از اینکه بگی:
«وردپرس خراب شده!»
یه چیز سادهتر رو بررسی کن: آدرس سایت دقیقاً چطوری تنظیم شده؟
اول از همه، سایت رو در حالت ناشناس باز کن
قبل از اینکه بریم سراغ فایلهای سایت، یک تست خیلی ساده انجام بده.
از طریق حالت ناشناس مرورگر سایتت رو باز کن
اگه سایت در حالت ناشناس باز شد، احتمال داره مشکل از کوکی یا کش مرورگر باشه.
در این حالت کوکیهای دامنه و کش مرورگر رو پاک کن و دوباره امتحان کن.
ولی اگه در حالت ناشناس هم همون:
ERR_TOO_MANY_REDIRECTS
رو دیدی، به احتمال زیاد مشکل از خود تنظیمات سایت یا سروره، نه فقط مرورگر.
یه نکته مهم وجود داره؛ HTTP و HTTPS رو بررسی کن
این یکی از اولین جاهاییه که باید سراغش بری.
فرض کن آدرس اصلی سایتت اینه:
https://Rayawp.net
ولی داخل تنظیمات وردپرس هنوز این ثبت شده:
http://RayaWp.net
حالا یک طرف سایت میگه: HTTP
و طرف دیگه میگه: HTTPS
اگر تنظیمات سرور هم HTTP رو به HTTPS ریدایرکت کنه، ممکنه حلقه ایجاد بشه.
آدرس سایت رو از داخل وردپرس بررسی کن
اگه هنوز به پیشخوان دسترسی داری، برو به:
تنظیمات ← عمومی
اینجا دو گزینه مهم داری:
نشانی وردپرس (URL) و نشانی سایت (URL)
مثلاً اگر سایتت باید با HTTPS و بدون www باز بشه، باید چیزی شبیه این داشته باشی:
https://example.com
هر دو باید با ساختار واقعی سایت هماهنگ باشن.
اگر یکی این باشه:
https://example.com
و اون یکی:
http://example.com
طبیعیه که باید شک کنی تنظیمات URL درست نیست.
www یا بدون www؟
اینجا هم یک نکته مهم داریم.
مهم نیست سایتت با www باشه یا بدون www.
مهم اینه که یکی رو بهعنوان نسخه اصلی انتخاب کنی و همهجا همون ساختار رو داشته باشی.
مثلاً:
https://example.com
و همه درخواستها در نهایت به همین نسخه برسن.
یا:
https://www.example.com
و همهچیز به همین آدرس ختم بشه.
مشکل زمانی ایجاد میشه که یک قانون بگه:
example.com → www.example.com
و قانون بعدی بگه:
www.example.com → example.com
این دیگه یک دور باطله که مدام تکرار میشه.
به پیشخوان دسترسی نداریم، حالا چی؟
این یکی خیلی مهمه.
گاهی خطا انقدر شدیده که حتی: /wp-admin هم باز نمیشه.
خب حالا چطور URL وردپرس رو درست کنیم؟
اینجا میتونیم از wp-config.php کمک بگیریم.
رفع Too Many Redirects با wp-config.php
برو داخل هاست. معمولاً از: File Manager → public_html
وارد فایلهای سایت شو.
فایل: wp-config.php رو پیدا کن.
قبل از خط:
میتونی URL موردنظر سایت رو مشخص کنی:
البته بهجای example.com دامنه واقعی خودت رو قرار بده.
یه نکته مهم وجود داره!
اسلش آخر آدرس رو نذار.
درست:
نه:
بعد فایل رو ذخیره کن. سایت رو دوباره تست کن.
اگه باز شد، یعنی احتمالاً مشکل از URL تنظیمشده در وردپرس بوده.
یه جای دیگه هم هست؛ دیتابیس وردپرس
اگه wp-config.php جواب نداد، بریم یک مرحله جلوتر.
وارد: phpMyAdmin شو.
دیتابیس وردپرس رو انتخاب کن.
بعد جدول: wp_options رو پیدا کن.
البته ممکنه پیشوند دیتابیس تو wp_ نباشه.
مثلاً ممکنه جدول این شکلی باشه: abc_options
پس دنبال جدولی بگرد که آخرش: _options داره.
حالا دو مقدار رو پیدا کن:
siteurl و home
این دو باید با آدرس واقعی سایت هماهنگ باشن.
مثلاً:
https://example.com
نه یکی:
http://example.com
و یکی:
https://example.com
حواست باشه!
کار با phpMyAdmin شوخی نداره.
قبل از تغییر، از دیتابیس بکاپ بگیر. یک تغییر اشتباه در دیتابیس میتونه مشکل جدید درست کنه.
مشکل Too Many Redirects بعد از فعال کردن SSL
اگه خطا دقیقاً بعد از فعال کردن SSL شروع شده، باید اول سراغ همین بخش بری.
ممکنه SSL رو فعال کرده باشی، ولی هنوز یکی از بخشهای سایت با HTTP کار کنه.
مثلاً وردپرس:
http://example.com
باشه.
سرور:
https://example.com
باشه.
Cloudflare هم یک قانون دیگه داشته باشه.
اینجا کمکم احتمال Loop بالا میره.
اگر Cloudflare روی سایتت فعاله، این قسمت رو حتماً ببین
اگه Cloudflare روی سایتت فعاله، یکی از جاهایی که باید خیلی جدی بررسی بشه:
SSL/TLS هست.
یکی از سناریوهای شناختهشده اینه که کلوفلر روی حالت:
Flexible باشه، ولی سرور اصلی هم تمام درخواستهای HTTP رو به HTTPS بفرسته.
Cloudflare توضیح داده که در این حالت ممکنه Cloudflare درخواست رو از سمت Origin با HTTP ارسال کنه، اما Origin دوباره اون رو به HTTPS ریدایرکت کنه و در نتیجه Redirect Loop ایجاد بشه.
در Cloudflare کدوم SSL Mode رو انتخاب کنیم؟
این قسمت رو نمیشه برای همه سایتها با یک جمله جواب داد.
اگر روی سرور اصلی گواهی SSL معتبر داری، باید تنظیم Cloudflare با Origin هماهنگ باشه.
Cloudflare حالتهای مختلفی مثل:
Full و Full (strict)
داره که برای ارتباط HTTPS بین Cloudflare و Origin استفاده میشن.
اما اینکه کدوم حالت دقیقاً برای زیرساخت تو مناسبه، به وضعیت گواهی SSL و سرور اصلی بستگی داره.
یه نکته مهم!
فقط برای اینکه خطا ناپدید بشه، تنظیم SSL رو کورکورانه عوض نکن.
اول ببین: Cloudflare با چه پروتکلی به Origin وصل میشه؟
بعد: Origin چه رفتاری با HTTP و HTTPS داره؟
این دوتا باید با هم هماهنگ باشن.
یک افزونه وردپرس میتونه باعث این خطا بشه؟
بله. مخصوصاً اگر افزونهای داری که با:
Redirect
SSL
Cache
Security
یا URL
کار میکنه.
مثلاً یک افزونه تصمیم گرفته HTTP رو به HTTPS بفرسته.
Cloudflare هم همین کار رو میکنه.
سرور هم یک Redirect سوم داره.
اینجا دیگه مشخصه چرا اوضاع خراب میشه.
چطور افزونهها رو موقتاً بررسی کنیم؟
اگه به پیشخوان دسترسی نداری، وارد: wp-content شو.
بعد پوشه: plugins رو موقتاً تغییر نام بده.
مثلاً: plugins-disabled
حالا سایت رو تست کن.
اگه سایت باز شد چی؟
یعنی احتمالاً یکی از افزونهها مقصره.
اسم پوشه رو دوباره به:
plugins برگردون.
بعد افزونهها رو مرحلهبهمرحله بررسی کن تا افزونه مشکلدار مشخص بشه.
ممکنه قالب باعث Redirect Loop شده باشه؟
بله. اگه داخل قالب کد سفارشی داری، مخصوصاً در: functions.php
بررسی کن که کدی برای Redirect اضافه نشده باشه.
گاهی یک قطعه کد کوچک سالها بدون مشکل کار میکنه.
بعد SSL تغییر میکنه. یا دامنه عوض میشه.
یا Cloudflare اضافه میشه. همون کد قدیمی تبدیل به مشکل میشه.
مسائل فنی داره، اینجا دیده میشه.
برای تست میتونی قالب رو موقتاً با یک قالب پیشفرض وردپرس بررسی کنی.
اگه مشکل برطرف شد، باید سراغ قالب یا کدهای سفارشی بری.
فایل .htaccess هم میتونه مقصر باشه
اگه هاستت از Apache یا LiteSpeed استفاده میکنه، فایل:
.htaccess
یکی از جاهای مهم برای بررسیه.
این فایل داخل ریشه وردپرسه:
public_html/.htaccess
داخلش ممکنه قوانین Redirect وجود داشته باشه.
مثلاً:
HTTP به HTTPS
www به بدون www
دامنه قدیمی به دامنه جدید
یا Redirectهای سفارشی.
یه نکته مهم!
کل .htaccess رو بدون بکاپ پاک نکن.
چون فقط Redirect داخلش نیست.
ممکنه قوانین Rewrite وردپرس و تنظیمات دیگه هم همونجا باشن.
اول از فایل یک کپی بگیر.
بعد تغییرات رو انجام بده.
چطور بفهمیم مشکل از .htaccess هست؟
اگه میدونی داری چیکار میکنی، میتونی فایل فعلی رو موقتاً تغییر نام بدی.
مثلاً: .htaccess رو تبدیل کنی به .htaccess-backup
بعد سایت رو تست کنی.
اگه مشکل برطرف شد، احتمالاً یکی از قوانین اون فایل باعث Loop شده.
حالا باید قانون مشکلدار رو پیدا کنی.
نه اینکه فایل رو برای همیشه حذف کنی.
آیا Too Many Redirects روی سئو سایت اثر داره؟
بله، این خطا برای سئو هم موضوع مهمیه؛ نه به این معنی که «خود خطا یک امتیاز منفی مستقیم برای رتبه است»، بلکه چون صفحهای که باید قابل دسترسی باشه، ممکنه اصلاً به محتوای نهایی نرسه.
کاربر صفحه رو نمیبینه. خزنده هم ممکنه در مسیر Redirect گیر کنه.
پس اگر این مشکل روی یک صفحه مهم سایت ایجاد شده، نباید بذاری روزها باقی بمونه.
یه نکته مهمتر هم هست:
Redirect با Redirect Loop فرق داره.
یک Redirect درست میتونه کاملاً طبیعی باشه.
مثلاً انتقال یک URL قدیمی به URL جدید.
مشکل زمانی شروع میشه که مقصد نهایی مشخص نباشه.
روش پیشنهادی رایا وردپرس برای رفع خطا
اگه بخوای بدون سردرگمی پیش بری، این مسیر رو انجام بده.
اول: سایت رو در حالت ناشناس باز کن.
دوم: HTTP و HTTPS رو بررسی کن.
سوم: www و بدون www رو بررسی کن.
چهارم: home و siteurl رو چک کن.
پنجم: اگر به پیشخوان دسترسی نداری، wp-config.php رو بررسی کن.
ششم: Cloudflare و SSL/TLS رو بررسی کن.
هفتم: افزونهها رو موقتاً تست کن.
هشتم: .htaccess رو بررسی کن.
در آخر
اگر هنوز مشکل باقی بود، تنظیمات Proxy، Nginx یا Apache رو بررسی کن.
این ترتیب مهمه.
چون قرار نیست از اولین قدم بری سراغ پیچیدهترین بخش.
سوالات متداول خطای Too Many Redirects در وردپرس
خطای Too Many Redirects در وردپرس یعنی چی؟
یعنی مرورگر بین دو یا چند آدرس در حال رفتوبرگشته و به URL نهایی نمیرسه. به این وضعیت Redirect Loop گفته میشه. WordPress هم تنظیمات متناقض URL، HTTPS و Proxy رو از عوامل این مشکل معرفی کرده است.
چرا ERR_TOO_MANY_REDIRECTS در وردپرس نمایش داده میشه؟
میتونه به دلیل ناهماهنگی HTTP و HTTPS، www و بدون www، مقادیر home و siteurl، تنظیمات Cloudflare، افزونههای Redirect یا SSL، .htaccess و تنظیمات Proxy باشه.
سریعترین راه رفع Too Many Redirects چیه؟
اول سایت رو در حالت ناشناس تست کن. بعد HTTPS، URLهای وردپرس، Cloudflare، افزونهها و .htaccess رو بهترتیب بررسی کن.
آیا Cloudflare میتونه باعث ERR_TOO_MANY_REDIRECTS بشه؟
بله. برای نمونه، Cloudflare حالت Flexible در شرایطی که Origin هم HTTP را به HTTPS ریدایرکت میکند، میتواند باعث Redirect Loop شود.
آیا SSL میتونه باعث Too Many Redirects بشه؟
بله. اگر تنظیمات HTTP و HTTPS در وردپرس، هاست یا CDN هماهنگ نباشند، احتمال ایجاد حلقه ریدایرکت وجود دارد.
اگر به wp-admin دسترسی نداشته باشیم چطور خطا رو رفع کنیم؟
میتونی از wp-config.php، phpMyAdmin یا تغییر نام موقت پوشه plugins برای عیبیابی استفاده کنی. WordPress همین مسیرها را برای بررسی Redirect و Login Loop پیشنهاد کرده است.
آیا حذف افزونهها خطای Too Many Redirects رو حل میکنه؟
اگر یک افزونه باعث حلقه شده باشه، غیرفعال کردن موقت اون میتونه مشکل رو مشخص کنه؛ ولی لازم نیست همه افزونهها رو حذف کنی. اول افزونههای مربوط به Redirect، SSL و Cache رو بررسی کن.
آیا .htaccess باعث Redirect Loop میشه؟
بله. اگر داخل .htaccess قوانین Redirect متناقض وجود داشته باشه، ممکنه سایت وارد حلقه بشه. قبل از هر تغییر از فایل بکاپ بگیر.
آیا پاک کردن کش مشکل رو حل میکنه؟
اگه مشکل فقط از کش قدیمی باشه، ممکنه کمک کنه؛ اما اگر Redirect Loop واقعی وجود داشته باشه، باید تنظیم ایجادکننده حلقه اصلاح بشه.
آیا Too Many Redirects برای سئو مشکل ایجاد میکنه؟
اگر URL مهم سایت به محتوای نهایی نرسه، دسترسی کاربر و خزنده به صفحه مختل میشه. بنابراین هر URL مهمی که وارد Redirect Loop شده باید سریع بررسی بشه.
آیا Too Many Redirects یعنی سایت هک شده؟
نه. این خطا بهتنهایی نشانه هک نیست و ابتدا باید تنظیمات URL، HTTPS، CDN، افزونهها و سرور بررسی بشن.
چرا فقط یک صفحه سایت Redirect میشه؟
احتمالاً برای همون URL یک قانون Redirect خاص وجود داره. Redirectهای افزونه، .htaccess، قوانین سرور یا انتقال URL قدیمی به جدید رو بررسی کن.
مرسی که تا پایان این مقاله از سایت رایا وردپرس با ما همراه بودی امیدوارم این مطلبم مثل بقیه مطالب به کارت بیاد و کارتو راه بندازه اگه سوال یا مشکلی بود حتما در قسمت نظرات مطرح کن تا پاسخ بدیم 🙂
