الملخص: إذا كانت بعض الصفحات (كلها باستثناء الصفحة الرئيسية) تُرجع خطأ 404 بعد تفعيل بنية عناوين URL «الروابط الدائمة»، فإن الأسباب الأكثر شيوعًا هي: قواعد إعادة الكتابة مفقودة أو تالفة في .htaccess, مكوّن Apache mod_rewrite غير متاح، تعارضات بين الإضافات/القالب، عنوان الموقع مُعدّ بشكل خاطئ في قاعدة البيانات، أو ذاكرات التخزين المؤقت/CDN قديمة. يشرح هذا الدليل الفحوصات والتصحيحات التي يمكنك تنفيذها من داخل WordPress ومن خلال cPanel.
المتطلبات
- الوصول إلى لوحة إدارة WordPress (wp‑admin) أو الوصول إلى cPanel (مدير الملفات) وphpMyAdmin.
- نسخة احتياطية حديثة من الملفات وقاعدة البيانات. استخدم JetBackup أو صدّر قاعدة البيانات عبر دليل JetBackup أو phpMyAdmin.
- معرفة مجلد الجذر لموقعك (مثل
public_htmlأو مجلد فرعي). - إذا كان الخادم مدارًا من قبل مزوّد الاستضافة: إمكانية الاتصال بالدعم لتفعيل
mod_rewriteأو تعديلAllowOverride.
المصطلحات المشروحة (مرة واحدة)
- الروابط الدائمة : بنية عنوان URL «مقروءة» (مثال /categorie/nom‑article) التي يوفرها WordPress.
- .htaccess : ملف تكوين محلي يستخدمه Apache لتطبيق القواعد (إعادة التوجيه، إعادة الكتابة). يوجد في جذر الموقع.
- mod_rewrite : مكوّن Apache الذي يسمح بتطبيق قواعد إعادة الكتابة الموجودة في
.htaccess. بدونه، لا تعمل «الروابط الدائمة» (pretty permalinks) على Apache.
خطوات سريعة (اختبار في 5 دقائق)
- في WordPress: الإعدادات → الروابط الدائمة → انقر على حفظ التغييرات (دون تغيير أي شيء) لإجبار إعادة توليد قواعد إعادة الكتابة.
- إذا لم يَكفِ ذلك: عبر cPanel → File Manager، أعد تسميته مؤقتًا
.htaccess(مثلاً.htaccess.bak).htaccessمع قواعد WordPress الافتراضية (النموذج أدناه). - عطّل الإضافات بسرعة عن طريق إعادة تسمية
wp-content/plugins(مثلاًplugins.off)؛ إذا اختفت أخطاء 404، أعد تفعيل الإضافة واحدة تلو الأخرى لعزل المسبّب. - تحقق مما إذا كان CDN (مثلاً Cloudflare) أو ذاكرة التخزين المؤقت على الخادم يعيد إرجاع صفحة 404 قديمة، وقم بمسحها.
إجراء مفصّل (خطوات مرقّمة)
1) النسخ الاحتياطي — الملفات + قاعدة البيانات
- قبل أي تعديل، صدّر قاعدة البيانات عبر phpMyAdmin أو استخدم JetBackup : دليل JetBackup و phpMyAdmin.
- حمّل أرشيفًا لمجلد الموقع (public_html أو مجلد التثبيت).
2) إعادة تعيين الروابط الدائمة من داخل WordPress (إذا كان الوصول إلى wp‑admin متاحًا)
- سجّل الدخول إلى /wp‑admin → الإعدادات → الروابط الدائمة.
- انقر على حفظ التغييرات دون تغيير أي شيء. يحاول WordPress كتابة الملف
.htaccessبشكل تلقائي ويُعيد إنشاء القواعد.
إذا لم يتمكن WordPress من كتابة .htaccess (الأذونات)، فسيعرض رسالة ويقترح كتلة للصقها يدويًا — راجع الخطوة التالية.
مرجع: صفحة المساعدة الرسمية حول الروابط الدائمة (تفتح في علامة تبويب جديدة).
إعدادات الروابط الدائمة — وثائق WordPress
3) التحقق واستعادة ملف .htaccess
- في cPanel → مدير الملفات، فعّل عرض الملفات المخفية (الملفات التي تبدأ بنقطة).
- ابحث عن
.htaccessفي جذر التثبيت (غالبًاpublic_html). - أعد تسميته مؤقتًا (مثلاً
.htaccess.bak) واختبر: إذا اختفت أخطاء 404 بعد حفظ الروابط الدائمة، فقم بإعادة إنشاء الملف بالمحتوى الصحيح.
.htaccess من خلال مدير الملفات في cPanel.النموذج الافتراضي الخاص بـ WordPress لوضعه في .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
إذا كان موقعك مُثبَّتًا في مجلد فرعي (مثلاً /blog/), قم بتعديل RewriteBase والقاعدة الأخيرة:
# Exemple pour site dans /blog/
RewriteBase /blog/
RewriteRule . /blog/index.php [L]
بعد التعديل، تحقق من أذونات الملف (<code>644</code>644 الموصى به) وأعد تحميل صفحة الاختبار.
4) اختبار بدون الإضافات / القالب (عزل التعارض)
- إذا كان لديك وصول إلى wp‑admin: قم بتعطيل جميع الإضافات وتفعيل قالب افتراضي (Twenty Twenty‑Three) ثم اختبر الروابط الدائمة.
- إذا لم يكن لديك وصول إلى wp‑admin: في cPanel → مدير الملفات، أعد تسمية المجلد <code>wp-content/plugins</code>
wp-content/pluginsإلى <code>plugins.off</code>plugins.offلتعطيل جميع الإضافات فورًا. بعد ذلك اختبر عناوين URL.
plugins عبر مدير الملفات لتعطيل الإضافات بسرعة.إذا اختفت أخطاء 404: أعد اسم المجلد وأعد تفعيل الإضافات واحدًا تلو الآخر لتحديد المسبب.
5) التحقق من <code>mod_rewrite</code> ونوع الخادم
على خادم Apache، تعتمد الروابط الدائمة على <code>mod_rewrite</code> mod_rewriteإذا لم يكن هذا المكوّن مفعلًا، فالقواعد الموجودة في <code>.htaccess</code> .htaccess تُتجاهَل: ستُعيد عناوين URL «الجميلة» خطأ 404.
- في الاستضافة المشتركة، لا يمكنك تفعيل <code>mod_rewrite</code>
mod_rewriteبنفسك: اتصل بالدعم وزودهم بعناوين URL للاختبار ونسخة من <code>.htaccess</code>.htaccess. - تحقق أيضًا من أن التوجيه <code>AllowOverride</code>
AllowOverrideيسمح باستخدام <code>.htaccess</code>.htaccess(القيمة <code>All</code>Allمطلوبة في تكوين Apache).
مصدر مفيد (يفتح في علامة تبويب جديدة):
مقدمة عن mod_rewrite — توثيق Apache
ملاحظة بخصوص Nginx : Nginx لا يستخدم .htaccess. إذا كان خادمك يستخدم Nginx أو بروكسي عكسي (reverse proxy)، فتنفيذ إعادة الكتابة يتم في تكوين الموقع (server block). مثال شائع لتقديمه إلى فريق الدعم :
location / {
try_files $uri $uri/ /index.php?$args;
}
6) تصحيح عنوان URL للموقع (نقل الموقع / تغيير النطاق)
- افتح cPanel → phpMyAdmin → اختر قاعدة البيانات → الجدول
wp_options. - تحقق من القيم
siteurlوhome. إذا كانت تشير إلى العنوان القديم، قم بتصحيحها (احفظ أولاً ملف تصدير SQL).
siteurl و home في phpMyAdmin إذا تغيّر عنوان الموقع.دليل داخلي لـ phpMyAdmin : كيفية استيراد / تصدير وتعديل قاعدة البيانات (phpMyAdmin).
7) استخدام WP Toolkit (إذا كان متوفرًا في cPanel)
إذا كان مزوّد الاستضافة يوفّر WP Toolkit في cPanel، فهو يوفر فحوصات سلامة وإجراءات إصلاح (إعادة تثبيت ملفات النواة، استعادة النسخ الاحتياطية، إلخ). يمكن أن يسرّع ذلك من عملية التشخيص إذا لم تكن تريد التعديل يدويًا.
دليل داخلي لـ WP Toolkit : WP Toolkit (cPanel) : إدارة تثبيتات WordPress الخاصة بك.
8) تفريغ ذاكرة التخزين المؤقت ومسح CDN
تذكّر تفريغ ذاكرة التخزين المؤقت من:
- إضافات التخزين المؤقت (مثل WP Super Cache، W3 Total Cache، إلخ)
- التخزين المؤقت على مستوى الخادم (Redis، Varnish) إذا كان مفعلًا
- شبكة CDN خارجية (Cloudflare أو غيرها) — قم بتفريغ ذاكرة التخزين المؤقت للمنطقة
9) التحقق من عمليات إعادة التوجيه وصفحات الخطأ المخصصة
قد تتسبب إعادة توجيه مُعدة بشكل خاطئ (في .htaccess ملف .htaccess أو في أداة Redirections داخل cPanel) في حدوث خطأ 404. تحقق أيضًا من صفحات الخطأ المخصصة إذا رغبت في عرض صفحة 404 محددة.
دليل داخلي مفيد: تكوين القواعد وعمليات إعادة التوجيه عبر ملف .htaccess و إنشاء صفحة خطأ مخصصة.
استكشاف الأخطاء وإصلاحها: الأسباب الشائعة وفحوصات سريعة
- .htaccess مفقود أو تالف — أعد تسمية الملف وأعد إنشاؤه (انظر الخطوة 3).
- mod_rewrite غير مفعل (Apache) أو خادم Nginx — اتصل بالدعم.
- قد تؤثر إضافة أو قالب على قواعد إعادة الكتابة — اختبر ذلك بتعطيل الإضافات (انظر الخطوة 4).
- أذونات غير صحيحة (للمجلدات
755755، وللملفات644644 — موصى بها). - الموقع نُقل دون تحديث
siteurlsiteurl/home في قاعدة البيانات — صحّحهما عبر phpMyAdmin.homeفي قاعدة البيانات — قم بتصحيحها عبر phpMyAdmin. - ذاكرة التخزين المؤقت / CDN التي تُعيد صفحة 404 قديمة — امسح كافة ذاكرات التخزين المؤقت.
- قواعد إعادة التوجيه المتضاربة في ملف .htaccess
.htaccess(مثال: قواعد عامة وُضعت قبل قواعد WordPress.)
متى يجب الاتصال بالدعم الفني
اتصل بالدعم إذا استمرت المشكلة بعد تطبيق الخطوات أعلاه. زوّدهم بالمعلومات التالية:
- أمثلة لعناوين URL التي تُرجع خطأ 404 (العنوان الظاهر + العنوان المتوقع).
- نسخة (أو لقطة شاشة) من ملف .htaccess
.htaccess— أو أشر إلى أنه غير موجود. - الإجراءات التي جُربت بالفعل (إعادة تعيين الروابط الدائمة، تعطيل الإضافات، تغيير القالب، مسح ذاكرات التخزين المؤقت).
- إذا أمكن: لقطة شاشة لمدير الملفات في cPanel (ملف
.htaccess.htaccess المرئي) وصورة من phpMyAdmin إذا قمت بتعديل siteurlsiteurl. - اذكر ما إذا كان الموقع خلف شبكة CDN أو وكيل عكسي (مثل Cloudflare، Varnish، Nginx).
القيود والاحتياطات
- إذا لم يكن لديك وصول إلى cPanel أو SFTP، فاطلب من الدعم إجراء الفحوصات (تفعيل mod_rewrite
mod_rewrite، استعادة .htaccess.htaccess، التحقق من سجلات الخادم). - لا تعدّل قاعدة البيانات (phpMyAdmin) إلا بعد حفظ ملف تصدير SQL مسبقًا.
- تعديلات Apache (تفعيل الوحدات، AllowOverride
AllowOverride) تتطلب صلاحيات مسؤول الخادم؛ اطلب مساعدة الدعم. - بالنسبة لبيئات Nginx، يتم الإصلاح عبر إعدادات الخادم وليس عبر ملف .htaccess
.htaccess— قدّم مقتطف try_filestry_filesإلى الدعم إذا لزم الأمر.
نماذج مفيدة
.htaccess — WordPress في الجذر
# 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 — WordPress في مجلد فرعي /blog/
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress
مقتطف Nginx مفيد لتقديمه إلى فريق الدعم
location / {
try_files $uri $uri/ /index.php?$args;
}
أستطيع مساعدتك
إذا رغبت، أستطيع:
- إعداد ملف
.htaccess.htaccess المناسب لمجلدك الفرعي (أشر إلى المسار الدقيق للموقع)، - أو إعداد قائمة بالعناصر الواجب إرسالها إلى الدعم (رابط مرجعي (URL)، نسخة من ملف .htaccess،
.htaccessوالإجراءات التي تم تجربتها) لتسريع التدخل.
الموارد الداخلية
- phpMyAdmin: استيراد/تصدير وتعديل قاعدة البيانات
- عرض الملفات المخفية في مدير الملفات في cPanel
- JetBackup 5: النسخ الاحتياطي والاستعادة
- WP Toolkit (cPanel): إدارة تثبيتات WordPress
- تكوين قواعد وإعادة توجيه عبر ملف .htaccess
المصادر العامة التي تم الرجوع إليها
- إعدادات الروابط الدائمة — وثائق WordPress
- مقدمة عن mod_rewrite — وثائق Apache
توثيق مرجعي
- شاشة إعدادات الروابط الدائمة — WordPress.org (توثيق)
- خادم Apache HTTP: مقدمة عن mod_rewrite (httpd.apache.org)
- واجهة سطر الأوامر لـ WP Toolkit — وثائق cPanel
تم الاطلاع على الوثائق في 16 أكتوبر 2026. قد تختلف الأدوات حسب مزود الاستضافة.