ووردبريس

حل مشكلة روابط ووردبريس مع NGINX وNext.js في الدليل الفرعي

إعداد بيئة تتضمن كل من NGINX وNext.js وWordPress يمكن أن يكون تحدياً، خاصة عندما يتعلق الأمر بتخصيص إعدادات الروابط الثابتة (Permalinks) بشكل صحيح. في هذا المقال، سنتناول مشكلة عدم عمل الروابط الثابتة ذات "اسم المقالة" في موقع WordPress الموجود في الدليل الفرعي /resources وكيف يمكن تكوين NGINX بالشكل الذي يسمح بتشغيل كلا النظامين معاً بسلاسة.

التحديات مع NGINX وWordPress

عند إعداد الخادم، وضع Next.js في المسار الجذري وWordPress في الدليل الفرعي /resources، قد تلاحظ أن الروابط الثابتة في WordPress لا تعمل كما هو متوقع عندما يتم ضبطها على "اسم المقالة". في البداية، كانت الروابط الثابتة تعمل عند ضبطها على "عادي"، ولكن عند التغيير إلى "اسم المقالة"، بدلاً من توجيه الطلبات بشكل صحيح إلى WordPress، يتم إعادة توجيهها إلى تطبيق Next.js، مما يؤدي إلى حدوث خطأ 500.

تعديل إعدادات NGINX لحل المشكلة

لإصلاح هذه المشكلة، تم تحديث إعدادات NGINX الخاصة بـ WordPress لتبدو كالتالي:

location /resources {
  client_max_body_size 10M;
  alias /var/www/html/wordpress;
  index index.php index.html;
  try_files $uri $uri/ /index.php$is_args$args;
  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

لكن بعد القيام بهذا التعديل، ظهرت مشكلة جديدة وهي أن الرابط https://example.app/resources/sample-post/ يعيد رسالة خطأ "غير موجود" (file not found)، ولا تعمل أي رابط ثابت في WordPress.

المتطلبات لحل المشكلة

لضمان عمل الروابط الثابتة "اسم المقالة" بشكل صحيح، يجب التأكد من توجيه كل الطلبات الخاصة بالمقالات إلى ملف index.php في مجلد WordPress. يجب أن يسمح تكوين NGINX بأن تُعالج طلبات الـ PHP من خلال FastCGI، مع التأكد من أن NGINX يقوم بسحب الملفات الصحيحة من الدليل المحدد.

كيفية تكوين NGINX بالشكل المناسب

من المهم أيضاً مصادقة توجيه طلبات الروابط بين Next.js وWordPress. يمكن أن يتم ذلك عبر إعداد try_files بشكل صحيح، بحيث يتأكد NGINX من ضرورة البحث عن ملفات WordPress أولاً. على سبيل المثال، يمكن أن يتضمن هذا التعليمات البرمجية:

try_files $uri $uri/ /resources/index.php?$args;

هذا الإعداد يساعد في توجيه كل الطلبات غير المعروفة إلى الملف الرئيسي لـ WordPress.

حيثيات ينبغي أخذها بعين الاعتبار

عند العمل مع بيئات تحتوي على مزيج من أنظمة التشغيل والتطبيقات، من الضروري الإبلاغ عن أي قيود أو مشاكل قد تؤثر على الأداء. يفضل الحصول على ثقة شاملة في تكوين الخادم عن طريق التجربة والتحقق المستمر من الأداء.

في الختام، إدارة إعدادات NGINX مع Next.js وWordPress في الدليل الفرعي /resources قد تتطلب بعض التعديلات الدقيقة للتأكد من أن كل نظام يعمل بكفاءة. يجب أن يكون التركيز على توجيه الطلبات بشكل صحيح وتحديث إعدادات الروابط الثابتة، لتوفير تجربة مستخدم سلسة.

إذًا، باستخدام التكامل بين NGINX وNext.js وWordPress، يمكن تحقيق بيئة تعمل بسلاسة وتعطي النتائج المرجوة.

احمد علي

متخصص في مجال تطوير وإدارة المواقع الإلكترونية، يتمتع بخبرة واسعة في التعامل مع منصات إدارة المحتوى، خاصة ووردبريس. يقدم أحمد حلولاً مبتكرة واستراتيجيات فعالة لتحسين أداء المواقع وتطوير تصميماتها بما يتناسب مع احتياجات المستخدمين. كما يتميز بقدرته على تبسيط المفاهيم التقنية وكتابة محتوى تعليمي يساعد الأفراد والشركات على تحسين تواجدهم الرقمي وتحقيق أهدافهم على الإنترنت.
زر الذهاب إلى الأعلى
Don`t copy text!