حل مشكلة ERR_TOO_MANY_REDIRECTS في ووردبريس متعدد المواقع
تعتبر مشكلة إعادة التوجيه غير المنتهي (المعروفة بـ 302 ERR_TOO_MANY_REDIRECTS) من أكثر المشاكل شيوعاً التي تواجه مستخدمي ووردبريس، خاصةً عند التعامل مع تكوينات متعددة المواقع (Multisite). هذه المشكلة قد تؤثر على إمكانية الوصول إلى موقعك مما يجعلك تبحث عن حلول عاجلة. في هذه المقالة، سنستعرض كيفية معالجة هذه المشكلة بخطوات واضحة تتوافق مع إعدادات Apache.
فهم المشكلة: إعادة التوجيه غير المنتهي
مشكلة إعادة التوجيه غير المنتهي تحدث عندما يقوم سيرفر الويب بإرسال المستخدمين من عنوان URL إلى آخر بشكل متكرر دون الوصول إلى الوجهة النهائية، مما يؤدي إلى ظهور خطأ ERR_TOO_MANY_REDIRECTS. في بيئة ووردبريس متعددة المواقع، يمكن أن تنتج هذه المشكلة عن إعدادات غير صحيحة في ملف wp-config.php، أو إعدادات SSL، أو حتى ملفات .htaccess.
إعدادات شبكة التوزيع (CDN)
قبل البدء في الحلول التقنية، من المهم التحقق من إعدادات نظام الحماية ضد تخزين المحتوى (CDN) مثل Cloudflare. يجب ضبط إعداد SSL على الوضع الكامل (Strict) عبر لوحة تحكم Cloudflare:
- اذهب إلى لوحة تحكم Cloudflare.
- انتقل إلى قسم SSL/TLS.
- اضبط إعداد SSL على "Full (strict)".
تحديث ملف wp-config.php
لإعداد ووردبريس متعدد المواقع على أساس المجلدات، يجب التأكد من إدراج الإعدادات الصحيحة في ملف wp-config.php:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false); // لتثبيت يعتمد على المجلد
define('DOMAIN_CURRENT_SITE', 'yourdomain.com'); // استبدلها باسم المجال الخاص بك
define('PATH_CURRENT_SITE', "/");
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
// معالجة SSL في Cloudflare
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
يضمن هذا الكود أن إعدادات متعددة المواقع تعمل بشكل سليم ولا تسبب مشاكل في إعادة التوجيه.
التحقق من ملف .htaccess
يعتبر ملف .htaccess من الملفات المهمة جداً التي تتحكم في إعادة التوجيهات. تحقق من وجود قواعد إعادة الكتابة الصحيحة لموقع ووردبريس متعدد المواقع:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress
تأكد من أن هذه القواعد موجودة بشكل صحيح للتأكد من عدم حدوث أي تداخل في إعادة التوجيه.
التحقق من قاعدة البيانات
قم بالتحقق من القيم الموجودة في قاعدة بيانات ووردبريس لضمان أن الحقول siteurl و home مضبوطة بشكل صحيح. يمكنك استخدام الأمر SQL التالي:
SELECT option_name, option_value
FROM wp_options
WHERE option_name IN ('siteurl', 'home');
إذا كانت القيم غير صحيحة، قم بتعديلها لتعكس إعدادات موقعك الحقيقية.
مسح الكاش في المتصفح وCloudflare
قم بمسح ذاكرة التخزين المؤقت (Cache) في متصفحك وأيضاً في Cloudflare. هذا سيساعد في التأكد من عدم تطبيق قواعد إعادة توجيه قديمة:
- لمتصفحك: امسح ذاكرة التخزين المؤقت.
- لCloudflare: اذهب إلى لوحة تحكم Cloudflare، ثم إلى قسم Caching، واختر Purge Everything.
ضبط إعدادات افتراضية على Apache
تأكد من أن الوحدة mod_rewrite مفعلة وأن الإعدادات الافتراضية للمضيف الافتراضي (Virtual Host) مضبوطة بشكل صحيح. يمكنك تمكين mod_rewrite باستخدام الأوامر التالية:
sudo a2enmod rewrite
sudo systemctl restart apache2
تأكد من أن إعدادات المضيف الافتراضي تتضمن:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Options FollowSymLinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
خاتمة
مشكلة إعادة التوجيه غير المنتهي في ووردبريس متعددة المواقع (WordPress multisite loop 302 ERR_TOO_MANY_REDIRECTS) قد تكون محبطة، ولكن من خلال اتباع الخطوات التي تم تناولها في هذا المقال، يمكنك تقليل فرص مواجهة هذه المشكلة. تأكد من مراجعة كل نقطة بدقة لضمان تكوين موقعك بشكل صحيح.